position定位有哪几种?各有什么特点?

本文深入解析CSS中的position属性,包括相对定位、绝对定位和固定定位的特点及应用。讲解了它们如何影响元素的位置,并探讨了常见问题如元素重叠和透明现象的解决方案。

这里是修真院前端小课堂,每篇分享文从

【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】

八个方面深度解析前端知识/技能,本篇分享的是:

【position定位有哪几种?各有什么特点?】

【修真院CSS小课堂】

position定位有哪几种?各有什么特点?

开场语:

大家好,我是IT修真院上海分院第10期的学员林璇,今天给大家分享一下,修真院CSS任务四

position定位有哪几种?各有什么特点?

(1)背景介绍:

定位分为三种

相对定位

让元素让元素相对于自己原来的位置,进行位置调整(可用于盒子的位置微调)。

相对定位不脱标:老家留坑,别人不会把它的位置挤走。

就是说,相对定位的真实位置还在老家,只不过影子出去了,可以到处飘。

绝对定位

定义横纵坐标。原点在父容器的左上角或左下角。

绝对定位脱标,绝对定位的盒子脱离了标准文档流。

绝对定位之后,标签就不区分所谓的行内元素、块级元素了,不需要display:block就可以设置宽、高了。

固定定位

是相对浏览器窗口进行定位。无论页面如何滚动,这个盒子显示的位置不变。

(2)知识剖析:

相对定位

有什么作用?

相对定位有坑,所以如果需要做一般不用于做“压盖”效果(把一个div放到另一个div之上)

做绝对定位的参考,子绝父相

绝对定位

一个绝对定位的元素,如果父辈元素中也出现了已定位

无论是绝对定位、相对定位,还是固定定位)的元素

那么将以父辈这个元素,为参考点。

子绝父相”有意义:这样可以保证父亲没有脱标,儿子脱标在父亲的范围里面移动。

固定定位

顶部导航

我们经常能看到固定在网页顶端的导航条,可以用固定定位来做

(3)常见问题:

有的时候为什么会出现透明的情况呢?

(4)解决方案:

z-index属性:表示谁压着谁。数值大的压盖住数值小的。

有如下特性:

(1)属性值大的位于上层,属性值小的位于下层。

(2)z-index值没有单位,就是一个正整数。默认的z-index值是0。

(3)如果大家都没有z-index值,或者z-index值一样,那么在HTML代码里写在后面,谁就在上面能压住别人。定位了的元素,永远能够压住没有定位的元素。

(4)只有定位了的元素,才能有z-index值。也就是说,不管相对定位、绝对定位、固定定位,都可以使用z-index值。而浮动的元素不能用。

(5)编码实战:

z-index:1;如果说在运用种,有1和2 的情况,如果父亲1比父亲2大,那么,即使儿子1比儿子2小,儿子1也能在最上层。

(6)拓展思考:

让绝对定位中的盒子居中

我们知道,如果想让一个标准流中的盒子居中(水平方向看)

可以将其设置margin: 0 auto属性。

可如果盒子是绝对定位的,此时已经脱标了,如果还想让其居中,可以这样做

left:50%; margin-left:负的宽度的一半

(7)参考文献:

1:生命壹号博客

2:B站视频:盒子模型

(8)更多讨论:

1:问题:Fixed 定位在 IE7 和 IE8 下需要描述什么才会支持呢?

回答:1.!DOCTYPE 才能支持。

2:问题:2.absolute 定位的元素和其他元素重叠吗?

回答:2.会重叠的

3:问题:relative在没有设置宽度的情况下,宽度是多少呢?

回答:3.宽度是整个浏览器的宽度。

(9)鸣谢:

感谢王刚师兄,此教程是在他们之前技术分享的基础上完善而成。

(10)结束语:

今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

CSS 中的 `position` 属性用于控制元素定位方式,共有多个可选值,每种值具有不同的定位行为和特点。 ### `static` 这是 `position` 的默认值,表示无定位元素会按照正常的文档流进行排列,忽略 `top`、`bottom`、`left`、`right` 和 `z-index` 的设置。该值常用于取消继承的定位属性[^1]。 ### `relative` 相对定位是指元素相对于其在正常文档流中的位置进行偏移。偏移通过 `top`、`bottom`、`left` 和 `right` 属性定义,但元素仍保留在文档流中,不会脱离布局。该定位方式不会影响其他元素的排列[^2]。 示例: ```css .element { position: relative; top: 10px; left: 20px; } ``` ### `absolute` 绝对定位元素会脱离文档流,不占据空间。其定位参考点是最近的设置了非 `static` 定位的祖先元素(即 `relative`、`absolute`、`fixed` 或 `sticky`)。如果没有符合条件的祖先元素,则以视口为参考点进行定位。绝对定位常用于精确控制元素位置,但需要注意父元素定位上下文设置[^4]。 示例: ```css .parent { position: relative; } .child { position: absolute; top: 0; left: 0; } ``` ### `fixed` 固定定位与绝对定位类似,但其参考点始终是视口(浏览器窗口),无论页面如何滚动,元素位置都不会改变。此方式常用于实现导航栏或浮动按钮等全局固定位置的 UI 元素。需要注意的是,老版本的 IE 浏览器(如 IE6)不支持该属性[^2]。 示例: ```css .header { position: fixed; top: 0; width: 100%; } ``` ### `sticky` 粘性定位是 CSS3 引入的新特性,结合了相对定位和固定定位的行为。元素在未达到特定滚动位置时表现为相对定位,一旦滚动超出设定的边界,则表现为固定定位。粘性定位必须配合 `top`、`bottom`、`left` 或 `right` 使用,并且其父元素不能设置 `overflow: hidden` 或 `transform` 等影响定位的行为[^1]。 示例: ```css .sidebar { position: sticky; top: 10px; } ``` ### `inherit` 该值表示元素继承其父元素的 `position` 属性值。在某些需要统一控制多个元素定位行为的场景中使用。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值