css position:sticky

版权声明:本文为博主(风轻云淡)原创文章,未经博主允许不得转载。CSDN https://blog.csdn.net/qq_20343517/article/details/83273578

position 是 CSS中的一个常用属性,常见的取值有:relative,absolute,static,fixed,不过我还有一个取值想必很多同学都没听过,那就是sticky,这个定位是干啥用的呢?

我们经常会遇到的一个场景就是,网页左侧有一个重要区域,正常情况下是跟随网页滚动条滚动的,当该元素到达浏览器顶部时,元素的定位就变成了fixed不动了。

对于这种需求的解决方案通常借助JS和CSS,通过检测滚动事件来修改元素的定位属性,或者使用第三方插件。

而sticky 恰恰是解决这种场景的纯CSS方案,sticky 的中文意思是粘性,也就是粘在某个地方。

将下面的代码保存在一个HTML文件 在浏览器中打开,体验一下sticky的效果

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        .out{
            margin-top:100px;
            position:relative;
            height:100%;
            background-color:pink;
        }
        .inner{
            width:100px;
            height:300px;
            background-color:red;
            position:sticky;
            top:0;
            left:100px;
        }
        body{
            height:10000px;
        }
    </style>
</head>
<body>
    <div class="out">
        <div class="inner"></div>
    </div>
</body>
</html>

需要注意的一点是,要实现粘性定位,必须要指定top,right,bottom,left,四个属性之一,否则是没有效果的。

目前浏览器对于sticky的支持不太乐观,推荐加上相应的polyfill

猜你喜欢

转载自blog.csdn.net/qq_20343517/article/details/83273578
今日推荐