【发布时间】:2020-07-06 09:19:47
【问题描述】:
我在整个页面中显示了以下长表(从数据库动态生成)。由于表格的长度,它具有垂直和水平滚动条。
我可以使用以下CSS 代码将标题固定在固定位置
table {
border-spacing: 0;
width: 100%;
overflow-y: auto;
height: 50vh;
}
thead th {
position: sticky;
top: 0;
background-color: white;
}
但我也想冻结左侧th,这样当我滚动水平滚动条时,我仍然可以看到最左边的列。有人知道怎么做吗?
编辑 1
我提到的表格是动态生成的。所以我不能粘贴原始代码,因为它包含php 和MySQL 的混合。所以作为参考,我正在粘贴一个引导表来工作
<table class="table table-hover">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">First</th>
<th scope="col">Last</th>
<th scope="col">Handle</th>
<th scope="col">Handle</th>
<th scope="col">Handle</th>
<th scope="col">Handle</th>
<th scope="col">Handle</th>
<th scope="col">Handle</th>
<th scope="col">Handle</th>
<th scope="col">Handle</th>
<th scope="col">Handle</th>
<th scope="col">Handle</th>
<th scope="col">Handle</th>
<th scope="col">Handle</th>
<th scope="col">Handle</th>
<th scope="col">Handle</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">1</th>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
<td>@mdo</td>
<td>@mdo</td>
<td>@mdo</td>
<td>@mdo</td>
<td>@mdo</td>
<td>@mdo</td>
<td>@mdo</td>
<td>@mdo</td>
<td>@mdo</td>
<td>@mdo</td>
<td>@mdo</td>
<td>@mdo</td>
<td>@mdo</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Jacob</td>
<td>Thornton</td>
<td>@fat</td>
<td>@fat</td>
<td>@fat</td>
<td>@fat</td>
<td>@fat</td>
<td>@fat</td>
<td>@fat</td>
<td>@fat</td>
<td>@fat</td>
<td>@fat</td>
<td>@fat</td>
<td>@fat</td>
<td>@fat</td>
<td>@fat</td>
</tr>
</tbody>
</table>
【问题讨论】:
-
请同时发布您的 HTML 代码。
-
其实是一个动态表,有
php和MySQL代码。如果我把它贴在这里,我认为它只会混淆。我们可以考虑一个普通的HTML表来查看它。可能我会发布一个简单的HTML表的代码。 -
使用数据表可以找到可能的解决方案。这是一个 JS 解决方案,所以它可能不是您想要的,但请查看 datatables.net/extensions/fixedcolumns/examples
-
查看this 帖子可能对您有帮助
-
所提供的所有解决方案的问题是,它们都集中在一种类型的滚动上。我需要的是,当我垂直滚动时,顶部标题必须有一个冻结,在此期间左窗格也应该垂直向上移动,以便表格中的数据显示正确。在我水平滚动的同时,左侧面板也必须冻结。
标签: html css html-table