這是一個應該工作的完整解決方案(使用jQuery) 您需要在單獨的div元素中各有兩個表。每個表格將具有相同的thead部分。只有contentTable將有TBODY部分
<div class="scrollableTable"
<div>
<table class="headerTable">
<thead>
<tr>
<th>Column 1</th>
<th>Column 2</th>
<th>Column 3</th>
</tr>
</thead>
</table>
</div>
<div style="height:240px; overflow:auto;">
<table class="contentTable" style="width:100%; margin-top:-20px;">
<thead>
<tr>
<th>Column 1</th>
<th>Column 2</th>
<th>Column 3</th>
</tr>
</thead>
<tbody>
<tr>
<td>value 1</td>
<td>value 2</td>
<td>value 3</td>
</tr>
<tr>
<td>value 4</td>
<td>value 5</td>
<td>value 6</td>
</tr>
....
</tbody>
</table>
</div>
</div>
然後,你將有每一個數據改變時調用這個函數:
ResizeWidths($('.scrollableTable'));
function ResizeWidths(div)
{
var headerCells = $(div).find('.headerTable thead').find('th');
var contentCells = $(div).find('.contentTable thead').find('th');
for(var i =0, ii = headerCells.length;i<ii;i++)
{
if($(headerCells[i]).width()!=$(contentCells[i]).width())
$(headerCells[i]).width($(contentCells[i]).width());
}
}
這將是可怕的非語義標記。你有沒有嘗試設置整個桌子的高度? – MvanGeest 2010-08-03 17:30:48
你可以發表一些代碼嗎? – cesarnicola 2010-08-03 18:11:29
桌子上的高度充當最小高度屬性。不能強制桌子只有一定的高度。我想要一個解決方案,不需要我把表格分成兩個表格,一個用於設置列寬的第一個表格。 – 2010-08-05 19:56:59