当 css 位置粘性停止粘贴时

新手上路,请多包涵

我想知道为什么 position: sticky 适用于某些 x 轴滚动,但是一旦您滚动超过屏幕宽度的初始宽度,您的“粘性 div”就会停止粘贴。

在这个例子中,我有一个左侧栏,它粘在左边(请注意,我不能使用 position: fixedposition: absolute ,因为在我的实际项目中,left-div而右边的 div 需要沿 y 轴上下滚动,因此我们只需要左侧粘贴)

是否有我可以定义的其他 CSS 参数,例如

left-sticky-distance=999999%

或类似的东西?

一些测试代码说明如下

    <html>

    <body>

    <div style='
    position:sticky;
    z-index:1;
    left:0;
    width:100px;
    height:200px;
    overflow: hidden;
    background-color:#ff0000;
    opacity:0.8;'
    >

    </div>

      <div style='position: absolute; top: 10; left: 10; width: 200; height:50px; background-color: blue'>B</div>
      <div style='position: absolute; top: 10; left: 110; width: 200; height:50px; background-color: blue'>C</div>
      <div style='position: absolute; top: 10; left: 210; width: 200; height:50px; background-color: blue'>D</div>
    </body>
    <html>

原文由 user1709076 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 337
2 个回答

这个问题: https ://stackoverflow.com/a/45530506 回答了这个问题。

一旦“sticky div”到达屏幕边缘,它就位于父元素视口的末端。这会导致粘性元素停止并停留在父视口的末尾。此代码笔提供了一个示例: https ://codepen.io/anon/pen/JOOBxg

 #parent{
      width: 1000px;
      height: 1000px;
      background-color: red;
}
#child{
      width: 200px;
      height: 200px;
      background-color: blue;
      position: sticky;
      top: 0px;
      left: 0px;
}
body{
      width: 3000px;
      height: 3000px;
}
 <html>
  <div id="parent">
    <div id="child">
    </div>
  </div>
</html>


原文由 Anthony Bauer 发布,翻译遵循 CC BY-SA 3.0 许可协议

在我将 height: auto; 添加到 body 的 CSS 属性中后,这个自动隐藏问题得到了修复。

 body {
    background: #fff;
    color: #444;
    font-family: "Open Sans", sans-serif;
    height: auto;
}

希望对您有所帮助。 :)

原文由 Waldeinsamkeit 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题