我有一个表。我添加到标准Bootstrap库中的唯一CSS是以下代码,用于实现sticky头:
.table-sticky th {
background: #fff;
position: sticky;
top: -1px;
z-index: 990;
}
<div class="table-responsive p-0 mt-2">
<table class="table table-sm table-striped table-hover table-sticky">
<thead>
<tr>
<th>#</th>
<th>Header</th>
<th>Header</th>
<th>Header</th>
<th>Header</th>
</tr>
</thead>
<tbody>
<tr>
<td>1,001</td>
<td>Lorem</td>
<td>ipsum</td>
<td>dolor</td>
<td>sit</td>
</tr>
<tr>
<td>1,002</td>
<td>amet</td>
<td>consectetur</td>
<td>adipiscing</td>
<td>elit</td>
</tr>
</tbody>
</table>
</div>
在我把表 Package 在div.table-responsive
中之前,sticky头文件一直有效。如何让它们共存?
3条答案
按热度按时间vfh0ocws1#
如果不重新实现
.table-responsive
,就无法在.table-responsive
中共存position: sticky
。我的解决方案最终使用
.table-responsive-sm
来拒绝这种折衷,因为响应表肯定是不需要的。kognpnkq2#
在这种情况下,你需要自己编写代码,下面的JS就可以完成这个工作:
在表格中将
thead
标记为id="fixed-thead"
,如下所示:我使用
translate3d
来启用硬件加速,使其更流畅。如果用户使用滚轮滚动滚动事件触发非常频繁,我建议使用滚动事件的去抖动。如果您的表中有固定长度的列,您可以使用设置
position: fixed
和top: 0
来代替translate3d
。但如果是可变长度,则首选translate3d
。rdrgkggo3#
不需要任何额外的CSS,你可以通过从div中删除table-responsive并在table标签中添加class=“bg-white sticky-top border-bottom”类来修复表头。