HONG之间
上班折腾,下班折腾

Power by hongyu

文章均为原创,转载请务必注明出处

定位之粘性定位sticky

0
作者:hongyu
2024-06-13 10:20:45

sticky定位是一个比其他几个定位static,fixed,absolute,relative发布都晚很多的定位方式,译为粘性定位,mdn是这样描述它的:

元素根据正常文档流进行定位,然后相对它的最近滚动祖先(nearest scrolling ancestor)和 containing block(最近块级祖先 nearest block-level ancestor),包括 table-related 元素,基于 top、right、bottom 和 left 的值进行偏移。偏移值不会影响任何其他元素的位置。 该值总是创建一个新的层叠上下文(stacking context)。注意,一个 sticky 元素会“固定”在离它最近的一个拥有“滚动机制”的祖先上(当该祖先的 overflow 是 hidden、scroll、auto 或 overlay 时),即便这个祖先不是最近的真实可滚动祖先。这有效地抑制了任何“sticky”行为(详情见 Github issue on W3C CSSWG)。

它其实可以理解为固定定位+相对定位,当sticky定位元素的父元素进入视口的时候,进入固定定位,离开视口的时候,进入相对定位。

进入视口的判断方式是:从视口底部到达元素顶部 直到 视口顶部离开元素底部 这段距离都代表进入了视口。

评论一下