“绝对”定位的定义是:“元素相对于其第一个定位(非静态)祖先元素定位”。
我的问题是,当所有祖先均为“静态”时,元素的行为如何?
我们可以说在这种情况下,“绝对”定位相当于“固定”定位吗?
答案 0 :(得分:1)
我们可以说在这种情况下,“绝对”定位相当于“固定”定位吗?
不,并非完全如此。对于top
,right
,bottom
和left
偏移而言,行为是相同的,但对于滚动而言则不同,这是固定位置与常规绝对位置的区别定位。
如果没有定位的祖先,则包含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中也是如此。