Я реализую таблицу с фиксированным заголовком, используя такую настройку:
<div style="padding-right:18px"><!-- to account for the scrollbar on the other div -->
<table id="head">
<tr>
<th>Col 1</th>
<th>Col 2</th>
</tr>
</table>
</div>
<div style="height:400px; overflow-y:scroll">
<table id="body">
<tr>
<td>Val 1a</td>
<td>Val 2a</td>
</tr>
<tr>
<td>Val 1b</td>
<td>Val 2b - this cell is wide</td>
</tr>
</table>
</div>
Я использую Dojo, чтобы после загрузки страницы ширина столбцов была одинаковой:
dojo.addOnLoad(function(){
var $bodyRow = dojo.query('#body tr')[0];
var $headRow = dojo.query('#head tr')[0];
dojo.forEach($bodyRow.cells, function(item, index){
var w = item.offsetWidth;
dojo.style($headRow.cells[index], 'width', w + "px");
});
});
К сожалению, хотя ширина корректируется, она недостаточно корректируется, чтобы выстроиться в линию. Кто-нибудь знает, почему это не работает? или лучше?
Примечание: это должно работать в IE6.