什么是定位祖先?



我正在MDN上阅读这篇文章的"定位技术"。 它谈到"绝对定位元素可以固定到相对于其最近定位的祖先元素的位置"。

我对"定位祖先"的理解是具有静态以外的任何位置属性的祖先。但我需要专家意见来验证我的想法。

当提到定位祖先时,我们指的是与元素最近的祖先,具有一组position值,而不是static(这是默认值(。

所以这里有两个假设:

  1. 如果有多个定位的祖先,我们的意思是最近的。
  2. 如果有一个祖先有一个集合position:static(大概是由JavaScript设置的,为了改变"定位祖先"(,我们并不是指那个祖先。

为什么这很重要?因为"定位祖先">是计算lefttop等属性的参考,当后代被赋予position:absolute时。它也称为后代的"引用元素/父元素"。
此外,如果这个最接近的祖先有一个集合z-index(auto除外(,它会为其后代创建一个堆叠上下文。

来自 W3C:

在这种情况下,包含块是最近定位的祖先。 我所说的"定位"是指位置属性设置为 相对的、绝对的或固定的——换句话说,除了正常之外的任何事物 静态元素。

详细描述,例如说明相对于定位祖先的定位

由相对定位的祖先建立的包含块 ("外部"(。

和CSS模块3,在该页面上搜索"定位祖先"。

最新更新