css中的position

本文详细解析了CSS中的Position属性,包括static、absolute、fixed和relative四种定位方式的特点与区别,并介绍了这些定位方式如何影响元素的位置及与其他元素的关系。

CSS中Position属性有四个可选值:
- position:static 无定位
该属性值是所有元素定位的默认情况,在一般情况下,我们不需要特别的去声明它,但有时候遇到继承的情况,我们不愿意见到元素所继承的属性影响本身,从而可以用position:static取消继承,即还原元素定位的默认值。
- position:absolute 绝对定位
使用position:absolute,能够很准确的将元素移动到你想要的位置,
- position:fixed 相对于窗口的固定定位
这个定位属性值是什么意思呢?元素的定位方式同absolute类似,但它的包含块是视区本身。在屏幕媒体如WEB浏览器中,元素在文档滚动时不会在浏览器视察中移动。例如,它允许框架样式布局。在页式媒体如打印输出中,一个固定元素会出现于第一页的相同位置。这一点可用于生成流动标题或脚注。我们也见过相似的效果,但大都数效果不是通过CSS来实现了,而是应用了JS脚本。
请特别注意,IE6不支持CSS中的position:fixed属性。
- position:relative 相对定位
所谓相对定位到底是什么意思呢,是基于哪里的相对呢?我们需要明确一个概念,相对定位是相对于元素默认的位置的定位。既然是相对的,我们就需要设置不同的值来声明定位在哪里,top、bottom、left、right四个数值配合,来明确元素的位置。
定位和父元素的关系ps:tl指top、left,ab、re指absolute、relative

父元素子元素结论
absoluteabsolute子随父的tl偏移
absoluterelative子随父的tl偏移
absolutestatic子随父的tl偏移
relativeabsolute子随父的tl偏移
relativerelative子随父的tl偏移
relativestatic子随父的tl偏移
staticabsolute子越过父寻上级父(有ab/re属性值得)直至body的tl偏移
staticrelative子随父的tl偏移
staticstatic子不随父的tl偏移

fixed指相对于浏览器窗口固定布局,所以未在表中显示。fixed一旦设置会随浏览器的上拉下拉而偏移。
总结:
1. relative定位的层总是相对于其最近的父元素,无论其父元素是何种定位方式
2. 对于absolute定位的层总是相对于其最近的定义为absolute或relative的父层,而这个父层并不一定是其直接父层。如果其父层中都未定义absolute或relative,则其将相对body进行定位。
3. 定位为relative的元素脱离正常的文本流中,但其在文本流中的位置依然存在。
4. 定位为absolute的层脱离正常文本流,但与relative的区别是其在正常流中的位置不在存在。


CSS 中的 position 属性指定了元素的定位类型,其值有 5 种,分别为 static(默认)、relative(相对定位)、absolute(绝对定位)、fixed(窗口定位)和 sticky(粘性定位),不同值的使用方法和特点如下: - **static(静态定位)**:这是 position 属性的默认值,元素按正常文档流排列,无法通过 top、left 等属性调整位置。可以省略不写 `position: static;` ,例如: ```css .box { position: static; /* 可省略不写 */ } ``` - **relative(相对定位)**:元素保留原位置,根据自身原始位置偏移,不影响其他元素布局,标签显示模式不变。可以使用 top、left 等属性来设置偏移量,例如: ```css .box { position: relative; top: 20px; /* 向下偏移20px */ left: 30px; /* 向右偏移30px */ } ``` - **absolute(绝对定位)**:元素会脱离正常文档流,相对于最近的已定位祖先元素(即 position 值不为 static 的祖先元素)进行定位。如果没有已定位的祖先元素,则相对于初始包含块(通常是浏览器窗口)定位。 ```css .parent { position: relative; /* 父元素设置相对定位 */ } .child { position: absolute; top: 50px; left: 50px; } ``` - **fixed(固定定位)**:元素脱离正常文档流,相对于浏览器窗口进行定位。无论页面如何滚动,元素都会固定在指定的位置。 ```css .fixed-element { position: fixed; top: 20px; right: 20px; } ``` - **sticky(粘性定位)**:元素在屏幕范围内时,按照正常文档流进行布局,当滚动到屏幕范围之外时,会固定在指定的位置,就像 fixed 定位一样。它需要结合 top、left、right 或 bottom 属性一起使用。 ```css .sticky-element { position: sticky; top: 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值