为什么绝对定位(position absolute)叫“绝对”?

明明是相对于一个元素(relative, absolute, fixed, or sticky)
如何牵强地解释这个“绝对”

positioned relative to its closest positioned ancestor
阅读 2.6k
8 个回答

image.png

脱离文档流,不受文档流限制

个人是这样记忆的:
absolute会脱离文档流,不再受其它文档流中的元素影响和限制,不需要其它元素的位置满足特定的条件
relative不会脱离文档流,受其它文档流中的元素影响和限制,需要其它元素的位置满足特定的条件

不过absolute还是要受到closest positioned ancestor的限制,只是相对于relative,限制少一些

绝对,是指无条件的、永恒的、无限的;相对,是指有条件的、暂时的、有限的。

绝对定位的元素是相对于最近的已定位祖先元素进行定位的。如果没有已定位的祖先元素,则相对于初始包含块进行定位。因此,绝对定位的元素的位置是相对于其祖先元素的位置而言是“绝对”的,不会受到其他元素的影响。因此,绝对定位被称为“绝对”;

1.绝对 是有前提条件,即相对最近的一个父元素,即别人已经为该元素做好了前提条件;那么这个时候再做定位就不能 叫做【相对第一个已定位元素的相对定位】吧;使用中文叫做【绝对定位】更好!
2.负负得正,相相得绝
3.也可以这么理解,相对于一个已定位元素得位置进行定位,无论你怎么移动其父级最近的定位元素,子级相对与该父级定位元素的位置是绝对的不会变的

我的理解是
相对定位会随着页面滚动变化位置 不会互相堆叠 ;
固定定位属性使得元素会不随着网页的滚动而变化 在视觉上是固定在了屏幕的某一个位置上;
而绝对定位虽然也像相对定位一样会随页面滚动 但它会和相对定位有堆叠 和绝对定位也有堆叠;
就感觉相对定位之间都很客气 绝对定位就是个小流氓 赖在那就不动了 别人踩我脚了我也绝对在这站住了
sticky没学 不懂
个人愚见🤝

因为绝对定位元素脱离了文档流,不受其他元素的影响,所以叫做绝对定位,但是脱离了文档流你总得给出一个它要存在的位置吧,所以就用了相对于最近的已定位的祖先元素的办法。而相对定位是相对于元素在文档流中的位置进行定位,它的位置是相对的。

绝对定位:绝对定位使元素的位置与文档流无关,因此不占据空间。这一点与相对定位不同,相对定位实际上被看作普通流定位模型的一部分,因为元素的位置相对于它在普通流中的位置。

相对定位:设置为相对定位的元素框会偏移某个距离。元素仍然保持其未定位前的形状,它原本所占的空间仍保留。


区别如下:

一、主体不同

1、相对定位:是设置为相对定位的元素框会偏移某个距离。

2、绝对定位:absolute 脱离文档流,通过 top,bottom,left,right 定位。

二、特点不同

1、相对定位:在使用相对定位时,无论是否进行移动,元素仍然占据原来的空间。因此,移动元素会导致它覆盖其它框。

2、绝对定位:选取其最近的父级定位元素,当父级 position 为 static 时,absolute元素将以body坐标原点进行定位,可以通过z-index进行层次分级。


【绝对】主要是指脱离了文档流,在不考虑祖宗节点变化的情况下,较为 【绝对】一些

称为“绝对”是因为它相对于其最近的“已定位”父元素进行定位,并且不会随着文档流中其他元素的变化而变化,因此其位置具有固定性和稳定性。

推荐问题
宣传栏