CSS的“绝对”定位:当没有非静态祖先时,行为是什么?

时间:2018-10-19 14:10:59

标签: css

“绝对”定位的定义是:“元素相对于其第一个定位(非静态)祖先元素定位”。

我的问题是,当所有祖先均为“静态”时,元素的行为如何?

我们可以说在这种情况下,“绝对”定位相当于“固定”定位吗?

1 个答案:

答案 0 :(得分:1)

  

我们可以说在这种情况下,“绝对”定位相当于“固定”定位吗?

不,并非完全如此。对于toprightbottomleft偏移而言,行为是相同的,但对于滚动而言则不同,这是固定位置与常规绝对位置的区别定位。

如果没有定位的祖先,则包含position: absolute的元素的包含块是初始包含块。

带有position: fixed的元素包含块是视口,而不是初始包含块。滚动时,视口不会移动,但是初始包含块会移动(因为它可能大于视口),这就是为什么固定位置的元素不会随页面滚动,而带有position: absolute的元素甚至会随页面滚动当后者没有定位祖先时。

您可以操纵页面布局,以使内容滚动,但是初始包含块永远不会resulting in a hack that makes position: absolute with no positioned ancestors behave like position: fixed,即使在Internet Explorer 6中也是如此。