CSS定位五种显示方式(主要解释固定定位和粘性定位)

我们在设计编写网页时一定会用到的的一个CSS命令就是position了

position一共有五种显示方式,分别为:

static: 静态定位(默认值【无定位】);

relative:相对定位(也就是相对于原来的位置移动);

absolute:绝对定位(相对于它的父元素移动【绝对定位如果没有其父元素的定位或者没有父元素,则以浏览器为准】);

我们常说的:自绝父相就是给到父亲相对定位,给到其子元素绝对定位。这样就可以实现静态定位了


好了,接下来我们详细来讲解一下剩下的俩种定位模式:

fixed:固定定位(固定在浏览器的一个位置不发生变化);

我们在代码和图片中做解释:

<!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>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        div{
            position: fixed;
            top: 200px;
            right: 0;
            width: 200px;
            height: 200px;
            border-radius: 10px;
            background-color: #a52a2a;
        }
        i{
            position: absolute;
            top: 2000px;
        }
    </style>
</head>
<body>
    <div></div>
    <i>我在下方2000像素的位置</i>
</body>
</html>

我们给到盒子一个固定定位,并且以浏览器的可视区域为准给到了top和right,使盒子始终处在一个可视区域固定的位置。

我们通过图片看一下我们在滚动页面的时候它是怎么运动的:

 这是我们刚打开页面的时候,确实在距离上方200像素的地方,那我们试着滑动鼠标滚轮看看是什么样的效果:

 我们不难看出,当我们滑倒了<i>标签的时候已经距离上方2000像素了,盒子的位置还是在原来固定的位置

所以我们得出结论:fixed固定定位是在浏览器的可视区域一直固定在一个位置,不会随着页面的滚动而变换位置。


 我们再看最后一种定位模式:

sticky:粘性定位(在没有达到阈值之前,相当于relative,达到阈值之后,相当于固定定位);

我们在代码和图片中解释:

<!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>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        div{
            position: sticky;
            top: 200px;
            margin-top: 500px;
            width: 200px;
            height: 200px;
            border-radius: 10px;
            background-color: #a52a2a;
        }
        i{
            position: absolute;
            top: 2000px;
        }
    </style>
</head>
<body>
    <div></div>
    <i>我在下方2000像素的位置</i>
</body>
</html>

还是刚才的例子,我们只是改变成为粘性定位,并且给盒子添加了上外边距使盒子先定在一个位置,当我们把页面滚到200像素的时候,我们发现在这一刻,在向下滑动的时候,盒子变成了固定定位的样式,在可视区域不动了

在实验完之后,我们不难看出固定定位和粘性定位的区别。

但是在实际开发中,粘性定位是不常用的,也不建议使用,一般使用JS来实现这些交互效果,并且粘性定位是有兼容性的,IE是不支持的哦

********** 我们在使用时需要添加top/bottom定位等,否则不能实现效果 *************

感谢观看,学习前端,关注小窝 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Try Tomato

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值