CSS 粘性布局:如何解决头部单元格粘住失效的问题?

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 粘性布局:如何解决头部单元格粘住失效的问题?的详细内容,更多请关注硕下网其它相关文章!