Safari位置的解决方法:粘性(-webkit-sticky)错误

时间:2019-09-14 10:55:12

标签: css safari flexbox css-position sticky

如果您在Safari中打开此小提琴https://jsfiddle.net/17uwnsq6/4/(12.1.2,但应适用于所有最新版本)并开始向下滚动白色可滚动区域,则最初的粘性“ Header”元素将保持粘性,但会稍后滚动到屏幕之外。在Chrome和Firefox中,它始终保持预期的粘性。

HTML和CSS供参考:

<div class="title">Title</div>
<div class="container">
  <div class="header">Header</div>
  <div class="content">Content</div>
</div>
html {
  height: 100%;
}

body {
  display: flex;
  flex-direction: column;
  height: 100%;
  margin: 0;
  padding: 0;
}

.container {
  flex: 1 1 0;
  overflow: auto;
}

.header {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
}

.content {
  height: 2500px;
}

.title {
  flex: 0 0 auto;
  background-color: lightblue;
}

当使用flex布局调整容器大小时,似乎会出现此错误。有人知道此问题的解决方法吗?目的是使标头始终保持粘性,同时调整容器的大小,以使其占据“标题”剩余的视口部分。

1 个答案:

答案 0 :(得分:1)

我想我已经解决了。技巧是将可滚动容器的整个子级(即标题和内容)放入包装div中-这样就不会触发该错误。