我在页面中有一个表格,我只需要为tbody
表格的一部分实现垂直滚动。我的表具有动态宽度的列,如果列宽度的增加导致表溢出,则会实现水平滚动。我想要的是只有表格主体在垂直溢出时滚动,但希望表格标题保持可见。我所实现的垂直滚动整个表格
以下是我现在的代码。它有虚拟数据,因为我无法发布实际代码,但结构是相同的(jsfiddle 链接):
th,
td {
text-align: left;
padding: 5px;
outline: solid 0.5px;
}
table {
table-layout: auto;
width: 100%;
white-space: nowrap;
overflow-x: scroll;
overflow-y: scroll;
height: 100px;
display: block;
}
.container {
width: 300px;
}
<div class="container">
<table>
<thead>
<tr>
<th>Title 1</th>
<th>Name</th>
<th>Address</th>
<th>Col4</th>
<th>Col5</th>
<th>Col6</th>
</tr>
</thead>
<tbody>
<tr>
<td>Title 2</td>
<td>Jane Doe</td>
<td>dfss</td>
<td>sdffsffsfd</td>
<td>sfsfs</td>
<td>sfsff</td>
</tr>
<tr>
<td>Title 3</td>
<td>John Doe</td>
<td>sasas</td>
<td>eeeee</td>
<td>eEe</td>
<td>sfff</td>
</tr>
<tr>
<td>Title 4 is a long title</td>
<td>Name1</td>
<td>dfss</td>
<td>sdffsffsfd</td>
<td>sfsfs</td>
<td>sfsff</td>
</tr>
<tr>
<td>Title 5 is shorter</td>
<td>Name 2</td>
<td>dfsf</td>
<td>sdfsf</td>
<td>dfsf</td>
<td>sdfsf</td>
</tr>
<tr>
<td>Title 6</td>
<td>Name 3</td>
<td>sasas</td>
<td>eeeee</td>
<td>eEe</td>
<td>sfff</td>
</tr>
</tbody>
</table>
</div>
我已经在 stackoverflow 上检查了这个问题的多个解决方案,但它们都为其列设置了固定宽度,然后如果内容超出宽度,则使用将内容包裹在里面。具有固定 thead 和可滚动 tbody 的表 是唯一没有完全搞乱我的页面的解决方案,但不起作用,它为标题和正文中的列提供了不同的列宽。
所有其他解决方案,即使是使用嵌套表的解决方案也使用固定宽度列,以及那些不使用 js/jQuery 的解决方案,我宁愿不使用它们,除非它是绝对的、最后的选项。有人可以建议一下吗?
MYYA
森栏
慕标琳琳
相关分类