【发布时间】:2015-02-11 13:01:03
【问题描述】:
我在尝试使 HTML 表格的 tbody 部分可滚动时遇到以下问题。
例如,我有这个简单的 HTML 表格:
<table border="1" class="scrollableTable">
<thead>
<tr>
<th width="14.2%">Codice RM</th>
<th width="14.2%">Autore Firma</th>
<th width="14.2%">Data Firma</th>
<th width="14.2%">Acq Riserva</th>
<th width="14.2%">Consegna Finale</th>
<th width="14.2%">Descrizione RM</th>
<th width="14.2%">Imponibile</th>
</tr>
</thead>
<tbody>
<tr class="even" id="rmRow">
<td width="14.2%">0001</td>
<td width="14.2%">bla</td>
<td width="14.2%">00000000</td>
<td width="14.2%">bla</td>
<td width="14.2%">bla</td>
<td width="14.2%">19/09</td>
<td width="14.2%">57.0</td>
</tr>
<tr class="even" id="rmRow">
<td width="14.2%">0002</td>
<td width="14.2%">bla</td>
<td width="14.2%">00000000</td>
<td width="14.2%">bla</td>
<td width="14.2%">bla</td>
<td width="14.2%">19/09</td>
<td width="14.2%">57.0</td>
</tr>
<tr class="even" id="rmRow">
<td width="14.2%">0003</td>
<td width="14.2%">bla</td>
<td width="14.2%">00000000</td>
<td width="14.2%">bla</td>
<td width="14.2%">bla</td>
<td width="14.2%">19/09</td>
<td width="14.2%">57.0</td>
</tr>
<tr class="even" id="rmRow">
<td width="14.2%">0004</td>
<td width="14.2%">bla</td>
<td width="14.2%">00000000</td>
<td width="14.2%">bla</td>
<td width="14.2%">bla</td>
<td width="14.2%">19/09</td>
<td width="14.2%">57.0</td>
</tr>
<tr class="even" id="rmRow">
<td width="14.2%">0005</td>
<td width="14.2%">bla</td>
<td width="14.2%">00000000</td>
<td width="14.2%">bla</td>
<td width="14.2%">bla</td>
<td width="14.2%">19/09</td>
<td width="14.2%">57.0</td>
</tr>
<tr class="even" id="rmRow">
<td width="14.2%">0006</td>
<td width="14.2%">bla</td>
<td width="14.2%">00000000</td>
<td width="14.2%">bla</td>
<td width="14.2%">bla</td>
<td width="14.2%">19/09</td>
<td width="14.2%">57.0</td>
</tr>
</tbody>
</table>
您可以在 tbody 部分看到一些行。这些行可能很多,所以我希望这个部分有一个特定的高度并且它是可滚动的(这样我可以看到所有的行)。
所以我尝试添加这些 CSS 设置:
首先我将 tbody 部分设置为一个块,以便我可以为其设置高度。
然后我为 tbody 部分设置一个高度。
最后,我将垂直溢出设置为滚动,以使我的 tbody 部分可滚动。
这是我的 CSS 代码:
tbody {
display: block;
height: 100px;
overflow-y: scroll;
}
但这是我得到的:
JSFiddle 链接:http://jsfiddle.net/AndreaNobili/4v1xnwzo/2/
HTML 结果:http://jsfiddle.net/AndreaNobili/4v1xnwzo/2/embedded/result/
如您所见,最终结果非常糟糕,并且 tbody 列 与 thead 列 不匹配。
为什么?我错过了什么?我该如何解决这个问题?
Tnx
【问题讨论】:
-
我试图弄乱你的代码,但无法弄清楚。使用2张桌子会很好。一个是固定的,一个是这样溢出的jsfiddle.net/xLuyxvfz/1?
-
@AndrewH 我已经知道这个解决方案了。我在问是否存在仅使用一张表的更优雅的解决方案
-
计算出适当的 td 宽度是可能的。看看这个fiddle
标签: html css xhtml html-table