CSS定位

本文详细介绍了CSS中的position属性,包括static、fixed、relative、absolute和sticky五种定位方式,以及它们如何影响元素的位置。通过实例展示了各种定位方式的效果,并提到了z-index属性在处理重叠元素时的作用。同时,还解释了position:sticky的粘性定位特性,即元素在滚动到特定位置时会固定在屏幕上的某个位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

position属性是用来设置元素的定位的前提,元素定位准确来说是由top,bottom,left,right四个属性来设置,但是如果没有设置position属性,这四个属性将不起作用,这四个属性也会根据position属性的不同而变化自己的工作方式。

一.position: static;

静态属性,位置不受top,bottom,left,right四个属性的影响,位置就是在HTML文件中的位置。

二.position: fixed;

设置position: fixed;的元素位置是相对于视口定位的,即滚动页面,它的位置始终不变,位于同一位置。 top、right、bottom 和 left 属性用于定位元素始终存在于视口的位置。

 div {
     position: fixed;
     top: 0;
     right: 0;
     width: 200px;
     height: 100px;
     border: 5px solid red;
     background-color: aquamarine;
 }

三.position: relative;

相对定位,设置position: relative;的元素,将会相对于正常的位置进行定位,设置相对定位的元素的 top、right、bottom 和 left 属性将导致其偏离其正常位置进行调整。不会对其余内容进行调整来适应元素留下的任何空间。

 

div {
     position: relative;
     left: 30px;
     border: 3px solid red;
 }

四.position: absolute;

position: absolute; 的元素相对于最近的定位祖先元素进行定位(而不是相对于视口定位,如 fixed),然而,如果绝对定位的元素没有祖先,它将使用文档主体(body),并随页面滚动一起移动。他的祖先一定要设置相对定位,否则绝对定位会以文档作为祖先

注意:除设置static元素外,其位置中所有元素都被定位

​
.relative {
     position: relative;
     width: 400px;
     height: 200px;
     border: 3px solid #73AD21;
 } 
.absolute {
     position: absolute;
     top: 80px;
     right: 0;
     width: 200px;
     height: 100px;
     border: 3px solid #73AD21;
 }

​

五.position: sticky;

暂且称他为粘性定位,position: sticky;的元素根据用户的滚动位置进行定位。粘性元素根据滚动位置在相对(relative)和固定(fixed)之间切换。起先它会被相对定位,直到在视口中遇到给定的偏移位置为止 - 然后将其“粘贴”在适当的位置。必须至少指定 toprightbottom 或 left 之一,以便粘性定位起作用。

这是最开始的原始页面

 当向上滑动鼠标后,它会变成下面这个样子,就自动固定到了页面最上方

div.sticky {
     position: -webkit-sticky;
     position: sticky;
     top: 0;
     padding: 5px;
     background-color: #cae8ca;
     border: 2px solid #4CAF50;
 }

六.重叠元素

在对元素进行定位时,有时可能会出现与其他元素重叠的现象,这时可以设置z-index属性来设置元素堆栈顺序,来控制那个元素显示在前,z-index的值越大,显示在最上方

                                 

第一张图片,z-index为-1时显示在图片之上
img {
     width: 200px;
     height: 200px;
     position: absolute;
     left: 0px;
     top: 0px;
     z-index: -1;
 }


第二张图片,z-index为111时显示在图片之下
img {
     width: 200px;
     height: 200px;
     position: absolute;
     left: 0px;
     top: 0px;
     z-index: 111;
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

๑Aurora.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值