• 粘性固定 position:sticky


    在研究rem布局时,无意中看到网易新闻移动端首页的导航栏用上了一个CSS 3的属性粘性定位position:sticky,它是相对定位(position:relative)和固定定位(position:fixed)的混合。
    使用它,我们不再用监听scroll事件,即可实现导航栏滚动绝对定位的效果。

     

     

    基本用法

    nav{
      position:sticky;
      top:10px; /* 阈值 */
    }

    top/bottom属性

    top,bottom的距离阈值取决于最近一个overflowhidden scroll autooverlay祖先元素(并不是相对于viewport 视口)。

    例如我们设置top:100px时,在元素滚动到距离祖先元素顶部小于设置的top:100px之前,元素为相对定位。当滚动到超过或等于top:100px时,元素将固定在与祖先元素顶部距离 top:100px 的相对位置,直到距离回滚到阈值以下。

    根据下面的例子,我们可以看到position:sticky元素设置的top值是最近一个设置了overflow的祖先元素的距离,当它滚到距离低于其值时将固定在视口当中,此时该元素的效果就为固定定位。

    下面例子的结构:

    <style>
     /*  精简的部分  */
    .container {
        display: flex;
    }
    .left {
        width: 30%;
        border: 1px solid;
    }
    .right {
        border: 1px solid red;
        width: 100%;
        margin-top: 40px;
         /*  祖先元素为 auto scroll hidden  */
        overflow: scroll; 
        height: 400px;
    }
    nav {
      position: sticky;
      top: 100px;
    }
    </style>
    <div class="container">
      <div class="left">右边距离顶部有margin-top: 100px</div>
      <div class="right">
        <h1 style="height:200px;">顶部高200px 红线为中线</h1>
        <nav>这是导航 top:100px</nav>
        <p>滚一个</p>
        <p>滚一个</p>
        <p>滚一个</p>
        <p>滚一个</p>
        <p>到底啦!</p>
      </div>
    </div>

     

    总结

    1. topbottom 的生效距离由最近一个overflow属性是hidden scroll autooverlay祖先元素决定。
    2. 父元素为overflow:hidden时,由于容器内无法滚动,所以实际上也无法生效。
    3. 必须指定topbottomleftright4个值之一,否则只会处于相对定位。
    4. 父元素的高度不能低于sticky元素的高度。
      position: -webkit-sticky;
      position: sticky;

     来源: https://www.jianshu.com/p/b72f504121f5


    sticky失效的原因,可以参考

    https://www.cnblogs.com/coco1s/p/14180476.html

    l

  • 相关阅读:
    MongoDB
    Vivado HLS与System Generator:联系与区别
    FPGA的图像处理技术,你知道多少?
    增量与位置PID
    zedboard之GPIO驱动(从FPGA一直到LINUX应用)
    珠峰攀登记录
    Source Insight建工程之Kernel
    zedboard 驱动理解
    研一上学期总结以及规划
    数字图象处理MATLAB学习
  • 原文地址:https://www.cnblogs.com/youmingkuang/p/15763278.html
Copyright © 2020-2023  润新知