html - Css 位置粘性,重叠而不是推

标签 html css sticky

我很难理解为什么粘性 div 不插入其他粘性 div。 我很确定我已经看到它是这样工作的,但我想不通。

我希望 Header 1 插入 Header 2 不与其重叠。 HTML

<div class="header">
  <h1>Header 1</h1>
</div>

<div class="item">
  <h1>Item1</h1>
</div>

<div class="item">
  <h1>Item2</h1>
</div>

<div class="header">
  <h1>Header 2</h1>
</div>

<div class="item">
  <h1>Item1</h1>
</div>

<div class="item">
  <h1>Item2</h1>
</div>

CSS

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

h1 {
  text-align: center;
  color: #000;
  font: bold 20vw Helvetica, Arial, sans-serif;
}

.header {
  position: sticky;
  top: 0px;
  height: 100%;
  width: 100%;
  background: white;
}
.item {
  height: 100vh;
  width: 100%;
  background: #00f;
}

这是一个示例以及我正在尝试做的事情。 https://jsfiddle.net/7zfq491o/

最佳答案

你需要不同的包装器:

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

h1 {
  text-align: center;
  color: #000;
  font: bold 20vw Helvetica, Arial, sans-serif;
}

.header {
  position: sticky;
  top: 0px;
  background: white;
}

.item {
  height: 100vh;
  background: #00f;
}
<section>
  <div class="header">
    <h1>Header 1</h1>
  </div>

  <div class="item">
    <h1>Item1</h1>
  </div>

  <div class="item">
    <h1>Item2</h1>
  </div>
</section>
<section>
  <div class="header">
    <h1>Header 2</h1>
  </div>

  <div class="item">
    <h1>Item1</h1>
  </div>

  <div class="item">
    <h1>Item2</h1>
  </div>
</section>

关于html - Css 位置粘性,重叠而不是推,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65142776/

相关文章:

css - Wordpress如何制作粘性导航菜单/使菜单始终粘在顶部?

javascript - 在 jquery 中使用事件名称和选择器有什么用?

html - 使用媒体查询获得完美图像响应的正确方法是什么?

javascript - 追加 div 元素,然后使用 JQUERY 从右到左设置动画

html - 如何强制图像在提到的宽度和高度内?

javascript - 多个粘性 header - CSS/JavaScript/AngularJS

javascript - 使用 CSS 创建平滑的粘性标题过渡

javascript - "Redirect"到 FormData 对象

html - 无法在 IE 上打印第二页

javascript - 从通过 map 呈现的序列的单个 div 中删除类