粘性定位解析

粘性定位可认为是相对定位和固定定位的结合,元素在跨越特定阈值前表现为相对定位,之后表现为固定定位。粘性定位的元素依赖于用户的滚动,在 relative 与 fixed 定位之间切换。

须指定 top、right、bottom 、left 四个阈值其中之一,才可使粘性定位生效,否则其行为与相对定位相同。

element {
    position: sticky;
    top: 50px;
}

样例1:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>粘性定位</title>
    <style>
        .box {
            height: 1200px;
            border: 1px solid rgb(109, 13, 218);
        }

        .left {
            float: left;
            height: 1200px;
            width: 500px;
            background-color: blue;
        }

        .right {
            position: sticky;
            top: 50px;
            float: left;
            height: 400px;
            width: 700px;
            background-color: yellow;
        }
    </style>
</head>

<body>
    <nav style="height: 200px; width: 100%; background-color: red;"></nav>
    <div class="box">
        <div class="left"></div>
        <div class="right">粘性定位的元素</div>
    </div>
    <div style="clear: both; height: 500px; background-color: green"></div>
</body>

</html>

该样例使黄色的块元素在距离顶部50px的距离时不再往顶部移动(父元素不具有实现粘性效果的活动空间时黄色块元素仍会往顶部移动),即表现为固定定位,运行结果如下:
在这里插入图片描述
样例2:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>粘性定位</title>
    <style>
        .box {
            height: 1100px;
            border: 1px solid rgb(109, 13, 218);
        }
        .left {
            height: 800px;
            width: 700px;
            background-color: blue;
        }
        .right {
            position: sticky;
            bottom: 50px;
            height: 300px;
            width: 700px;
            background-color: yellow;
        }
    </style>
</head>

<body>
    <nav style="height:1200px; width: 100%; background-color: red;"></nav>
    <div class="box">
        <div class="left"></div>
        <div class="right">粘性定位的元素</div>
    </div>
    <div style="clear: both; height: 200px; background-color: green"></div>
</body>

</html>

该样例使黄色的块元素在距离顶部50px的距离时不再往顶部移动(父元素不具有实现粘性效果的活动空间时黄色块元素仍会往底部移动),即表现为固定定位,运行结果如下:
在这里插入图片描述


注:

  • 如果粘性定位元素的高度与其父元素的高度相等,粘性定位元素在粘性约束矩形中(父元素)将会没有实现粘性效果的活动空间,此时粘性失效。
  • 粘性定位元素仅在其父元素内生效。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值