粘性定位
position粘性定位sticky
position:sticky粘性定位
sticky是css定位中不太常用的一种定位,但是可以根据粘性定位的特性 在页面中达到你想要的效果。
像是某些网站,在主导航栏下面还会有副导航栏,要实现页面往下拉,副导航栏一直定位在页面顶部,除了可以用js监听onscroll事件来实现,还可以通过sticky定位轻松搞定。
1.定义
粘性定位可以被认为是相对定位和固定定位的混合。元素在跨越特定阈值前为相对定位,之后为固定定位。
2.使用条件:
    1. 父元素不能设置 overflow:hidden; 或者 overflow:auto;  属性;
    2. 必须制定 top、bottom 、left 、 right 4个值之一,否则只会处于相对定位;
    3. 父元素的高度不能低于sticky 元素的高度;
    4. sticky 元素仅在其父元素内生效;
简单写个demo
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
    .sticky{
        width: 100%;
        color:white;
        background-color: cadetblue;
        border: 1px solid red;
        position: sticky;
        top:0;
    }
    .div{
        height: 3000px;
        text-align: center
    }
    </style>
</head>
<body>
    <div class="div">
        <p>第一行</p>
        <p>第二行</p>
        <p class="sticky">第三行</p>
        <p>第四行</p>
        <p>第五行</p>
        <p>第六行</p>
        <p>第七行</p>
        <p>第八行</p>
        <p>第九行</p>
        <p>第十行</p>
        <p>第十一行</p>
        <p>第十二行</p>
        <p>第十三行</p>
        <p>第十四行</p>
        <p>第十五行</p>
        <p>第十六行</p>
        <p>第十七行</p>
        <p>第十八行</p>  
    </div>
    
</body>
</html>
页面展示如下:

下拉滚动条

这里给第三行加了position:sticky属性,设置了top:0,当往下拖动的时候,第三行就会固定在顶部位置
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号