CSS 粘性布局:如何解决头部单元格粘住失效的问题?
css sticky 粘性问题
在实现 CSS 粘性布局时,遇到这样一个问题:
<div class="table-container"> <div class="header-row"> <div class="header-cell header-fixed">Header 1</div> <!-- 更多头部单元格 --> </div> <div class="table-body"> <div class="row"> <div class="cell cell-fixed">Row 1</div> <!-- 更多数据单元格 --> </div> <!-- 更多行 --> </div> </div>
问题描述:左右滑动时,头部单元格可以粘住在左边,但是左右滚动超过 300px 就不粘住了。
解决方案
可以通过修改 table-body 的 display 属性来解决问题:
.table-body { display: flex; }
解释
粘性元素会“粘”到其最近的具有“滚动机制”的祖先元素。在示例代码中,超出 table-container 的滚动机制是 table-body。但是,table-body 默认的 display 属性为 block,使得它不支持水平滚动,导致超出 300px 后粘性效果失效。
通过将 table-body 的 display 属性改为 flex,它将变成一个具有水平滚动机制的容器,粘性元素就可以正常工作,一直粘住在左边。
以上就是CSS 粘性布局:如何解决头部单元格粘住失效的问题?的详细内容,更多请关注硕下网其它相关文章!