什么是定位的祖先?

时间:2017-08-20 17:10:50

标签: css css-position

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

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

2 个答案:

答案 0 :(得分:5)

当引用定位的祖先时,我们指的是具有集合position值的元素的最接近的祖先,而不是static(默认值)。

所以这里有两个假设:

  1. 如果有多个定位祖先,我们的意思是最接近的
  2. 如果有一个具有集合position:static的祖先(可能是由JavaScript设置,为了更改"定位的祖先")我们并不意味着祖先。
  3. 为什么这很重要?因为"定位祖先" 是计算lefttop等属性的引用,所以当给予后代position:absolute时。它也被称为"参考元素/父母"后代 此外,如果此最近的祖先具有集合z-indexauto除外),则会为其后代创建堆叠上下文。

答案 1 :(得分:2)

From the W3C:

  

在这种情况下,包含块是最近的祖先。   “定位”是指其position属性设置为的元素   相对的,绝对的或固定的 - 换言之,除了正常之外的任何东西   静态元素。

Long description for example illustrating positioning with respect to a positioned ancestor

  

由相对定位的祖先建立的包含块   ("外&#34)。

CSS Module 3,搜索"定位祖先"在那个页面上。