前端知库

absolute、fixed 和 sticky 的定位参照是什么?

参考答案

absolute 通常相对最近建立相应包含块的祖先定位;fixed 常相对视口,但 transform、contain 等祖先条件可能改变其包含块。不能把“最近的非 static 父元素”当成覆盖所有现代 CSS 情况的唯一规则。

sticky 仍参与正常布局,在滚动到指定阈值后受粘性约束。它需要有效的 inset,且会受到滚动祖先、可用空间和包含块边界影响;祖先 overflow 设置经常是“没有粘住”的原因。

调试时检查包含块、滚动容器和元素尺寸。布局浮层还需要考虑裁剪与层叠上下文,这些与定位参照相关但不是同一概念。