首页 > web前端 > css教程 > 如何在纯 CSS 中将多个粘性元素堆叠在一起?

如何在纯 CSS 中将多个粘性元素堆叠在一起?

Susan Sarandon
发布: 2024-11-03 13:53:30
原创
791 人浏览过

How to Stack Multiple Sticky Elements on Top of Each Other in Pure CSS?

理解问题:

在纯 CSS 中相互堆叠的多个粘性元素可能很难实现,因为它们往往会推出其他粘性元素。问题中提供的示例演示了这种行为,其中两个粘性标题(“粘性标题”和“两个标题应同时粘住。”)在滚动时不会保持堆叠状态。

解决方案:

要实现所需的行为,需要通过添加偏移量使所有粘性元素粘在同一个容器(包含块)上。以下是解决方案的细分:

  • 确定容器:

    • 识别所有粘性元素应粘贴的父元素(例如,
  • 应用粘性定位:

    • 为所有粘性添加position:sticky属性elements.
  • 设置偏移距离:

    • 使用 top 属性指定距容器顶部的偏移距离
  • 调整偏移距离:

    • 每个后续粘性元素的 top 属性值应按前面的粘性元素的高度以确保它们堆叠正确。

示例代码:

这是您提供的代码的修改版本,其中添加了到粘性元素的偏移量。现在,滚动时粘性元素将堆叠在一起:

<code class="html"><div id="container">
  <article id="sticky">
    <header>Both headings should stick at the same time.</header>
    <main>
      <h1 class="sticky-1">Sticky heading</h1>
      <p>Some copy goes here...</p>
    </main>
  </article>

  <article id="fixed">
    <header>Fixed heading</header>
    <main>
      <h1 class="sticky-1">Sticky heading</h1>
      <p>Some copy goes here...</p>
    </main>
  </article>
</div></code>
登录后复制
<code class="css">#sticky .sticky-1,
#sticky .sticky-2 {
  position: sticky;
}
#sticky .sticky-1 {
  top: 1em;
}
#sticky .sticky-2 {
  top: calc(1em + 50px);
}
#fixed .sticky-1 {
  position: fixed;
  top: 0;
}
#fixed .sticky-2 {
  position: fixed;
  top: 1em;
}</code>
登录后复制

通过合并偏移的概念,此示例中的粘性元素现在将在滚动时保持正确堆叠。

以上是如何在纯 CSS 中将多个粘性元素堆叠在一起?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板