2 回答
TA贡献1862条经验 获得超7个赞
您要做的是将表的内容与表的标题分开。您只希望<th>滚动元素。您可以使用<tbody>和<thead>元素轻松地在HTML中定义这种分隔。
现在,表头和表主体仍相互连接,它们的宽度(和滚动属性)仍相同。现在,让它们不再作为表“工作”,您可以设置display: block。这样<thead>与<tbody>人分开。
table tbody, table thead
{
display: block;
}
现在,您可以将滚动条设置到表格的主体:
table tbody
{
overflow: auto;
height: 100px;
}
最后,由于<thead>不再与主体共享相同的宽度,因此您应该为表格的标题设置静态宽度:
th
{
width: 72px;
}
您还应该为设置静态宽度<td>。这解决了列未对齐的问题。
td
{
width: 72px;
}
请注意,您还缺少一些HTML元素。每行应位于一个<tr>元素中,该元素应包括标题行:
<tr>
<th>head1</th>
<th>head2</th>
<th>head3</th>
<th>head4</th>
</tr>
我希望这就是你的意思。
附录
如果您想更好地控制列的宽度,让它们之间的宽度互不相同,并确保标题和正文列保持对齐,则可以使用以下示例:
table th:nth-child(1), td:nth-child(1) { min-width: 50px; max-width: 50px; }
table th:nth-child(2), td:nth-child(2) { min-width: 100px; max-width: 100px; }
table th:nth-child(3), td:nth-child(3) { min-width: 150px; max-width: 150px; }
table th:nth-child(4), td:nth-child(4) { min-width: 200px; max-width: 200px; }
分享编辑
TA贡献1810条经验 获得超5个赞
我可以想到一个轻松的方法,我认为这不是最好的选择,但它会起作用。
将标头创建为单独的表格,然后将另一个标头放置在div中并设置最大尺寸,然后使用允许滚动进来overflow。
table {
width: 500px;
}
.scroll {
max-height: 60px;
overflow: auto;
}
<table border="1">
<tr>
<th>head1</th>
<th>head2</th>
<th>head3</th>
<th>head4</th>
</tr>
</table>
<div class="scroll">
<table>
<tr><td>Text Text</td><td>Text Text</td><td>Text Text</td><td>Text Text</td></tr>
<tr><td>Text Text</td><td>Text Text</td><td>Text Text</td><td>Text Text</td></tr>
<tr><td>Text Text</td><td>Text Text</td><td>Text Text</td><td>Text Text</td></tr>
<tr><td>Text Text</td><td>Text Text</td><td>Text Text</td><td>Text Text</td></tr>
<tr><td>Text Text</td><td>Text Text</td><td>Text Text</td><td>Text Text</td></tr>
<tr><td>Text Text</td><td>Text Text</td><td>Text Text</td><td>Text Text</td></tr>
<tr><td>More Text</td><td>More Text</td><td>More Text</td><td>More Text</td></tr>
<tr><td>Text Text</td><td>Text Text</td><td>Text Text</td><td>Text Text</td></tr>
<tr><td>Even More Text Text</td><td>Even More Text Text</td><td>Even More Text Text</td><td>Even More Text Text</td></tr>
</table>
</div>
- 2 回答
- 0 关注
- 695 浏览
相关问题推荐
添加回答
举报