我正在MDN上阅读这篇文章的"定位技术"。 它谈到"绝对定位元素可以固定到相对于其最近定位的祖先元素的位置"。
我对"定位祖先"的理解是具有静态以外的任何位置属性的祖先。但我需要专家意见来验证我的想法。
当提到定位祖先时,我们指的是与元素最近的祖先,具有一组position
值,而不是static
(这是默认值(。
所以这里有两个假设:
- 如果有多个定位的祖先,我们的意思是最近的。
- 如果有一个祖先有一个集合
position:static
(大概是由JavaScript设置的,为了改变"定位祖先"(,我们并不是指那个祖先。
为什么这很重要?因为"定位祖先">是计算left
和top
等属性的参考,当后代被赋予position:absolute
时。它也称为后代的"引用元素/父元素"。
此外,如果这个最接近的祖先有一个集合z-index
(auto
除外(,它会为其后代创建一个堆叠上下文。
来自 W3C:
在这种情况下,包含块是最近定位的祖先。 我所说的"定位"是指位置属性设置为 相对的、绝对的或固定的——换句话说,除了正常之外的任何事物 静态元素。
详细描述,例如说明相对于定位祖先的定位
由相对定位的祖先建立的包含块 ("外部"(。
和CSS模块3,在该页面上搜索"定位祖先"。