#table_wrapper{width:80%;background:DodgerBlue;border:1px solid olive;float:left;}
#header{border-bottom:1px solid red;background:DodgerBlue;} /* no width */
#header div {padding:1px 5px; overflow:hidden;}
#head1{float:left; border-right:1px solid orange;} /* no width */
#head2{float:left; border-right:1px solid orange;} /* no width */
#head3 span{padding:1px 5px;}
html:first-child #tbody{overflow:auto;} /* older Opera */
#tbody{height:80px;
overflow-y:auto;overflow-x:hidden;
background:yellow;
} /* no width */
table{border-collapse:collapse;width:100%;}
td{padding:1px 5px; /* pixels */
border-right:1px solid green; /* to avoid the hacks for the padding */
border-bottom:1px solid green;}
.td1{width:30%;} /* optional ! */
.td2{width:10%;} /* optional ! */
.td3{border-right-width:0;} /* optional */
Javascript Code
<script>function check_height(){
var t = document.getElementById('scroll_table');
var tb = document.getElementById('tbody');
if ( t.clientHeight < tb.clientHeight ) {
t.style.width = tb.clientWidth + 'px';
}
}
var ie7Flag = false; // see explanation belowfunction check_width(){
var h = document.getElementById('header');
var divs = h.getElementsByTagName('div');
// the document.getElementsByClassName is not recognizable by IE
var tab = document.getElementById('scroll_table');
// IE 7 decides: if table has % width -
// no need to put scroll bar to the parrent wrapper.
// I explicitly put the width for the table and #tbody after a
// browser calculated how many pixels is the width:80% of the #table_wrapper.
// If you use any browser detecting mechanism, you can use this code
// only for IE7.
if ( ! ie7Flag ) {
var wr = document.getElementById('table_wrapper');
var tb = document.getElementById('tbody');
tab.style.width = wr.clientWidth+'px';
tb.style.width = wr.clientWidth+'px';
ie7flag = true;
}
var tds = tab.getElementsByTagName('td');
// I've hard coded the left+right padding of the TDs,// can be dynamically initialized.var padding_left_plus_right = 10;
for ( var i=0;i<divs.length-1;i++ ){
if ( divs[i].clientWidth != tds[i].clientWidth ) {
var w = tds[i].clientWidth - padding_left_plus_right;
divs[i].style.width = w+'px';
}
}
}
</script>
Le
M.....................
Right Column
width:30%
width:10%
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
FF onresize event (image)
Add javascript code:
window.onresize = check_width;
And
if you use any addOnLoadEvent function add the calls
check_height();check_width(); to it.
OR<body onload="check_height();check_width();">