position 有五个常用值,构成一条「脱离文档流程度」的谱系:static(默认,不定位)→ relative(相对自身偏移,仍占位)→ absolute(相对最近的定位祖先,脱离文档流)→ fixed(相对视口,滚动不动)→ sticky(相对滚动位置吸附,是 relative 与 fixed 的混合体)。
absolute 的「包含块」是最容易踩坑的点:它会向上找最近的已定位祖先,如果一直找不到就以初始包含块(html)为基准,而不是父元素。
.parent { position: relative; } .badge { position: absolute; top: 8px; right: 8px; /* 相对 .parent 定位 */ } .toc { position: sticky; top: 56px; } /* 滚动吸附 */