For your question: "How to fill any div to 100% of parent height ??" Just set the child's div height to 100% and it will fill the height of the parent element.
childDIv{
height:100%;
}
Edit With your new info you provided, here is a solution for your problem maybe:
Fiddle: http://jsfiddle.net/s4dDL/4/
HTML
<table>
<tr><td rowspan="2"><div>row 1 and 2</div></td><td>col 2</td><td>col 3</td></tr>
<tr><td>col 2</td><td>col 3</td></tr>
<tr><td>col1</td><td>col 2</td><td>col 3</td></tr>
</table>
CSS
*{margin:0;padding:0;}
table{
border-collapse:collapse;
}
td{
position:relative;
height:100px;
width:50px;
background-color:red;
}
td div {
position:absolute;
top:0;
left:0;
height:200px;
z-index:10;
background-color:green;
}
You set the div to position absolute and left and top to 0 to set it top left of the td element, but need to set the td to relative for it to work. Then set the height of div to 2x the height of the td element. But for it to appear over top of the second row (rowspan=2), you need to set a z-index.
EDIT
Actually, if you fill the full cell, dont need to use positioning, and it doesnt work on firefox anyways. as pointed out in comments.
here is a working fiddle with update: http://jsfiddle.net/s4dDL/13/