导致position:sticky失效的原因

sticky 英文字面意思是粘,粘贴,所以姑且称之为粘性定位。下面就来了解下这个处于实验性的取值的具体功能及实用场景。 这是一个结合了 position:relative 和 position:fixed 两种定位功能于一体的特殊定位,适用于一些特殊场景。 什么是结合两种定位功能于一体呢? 元素先按照普通文档流定位,然后相对于该元素在流中的 flow root(BFC)和 containing block(最近的块级祖先元素)定位。 而后,元素定位表现为在跨越特定阈值前为相对定位,之后为固定定位。 这个特定阈值指的是 top, right, bottom 或 left 之一,换言之,指定 top, right, bottom 或 left 四个阈值其中之一,才可使粘性定位生效。否则其行为与相对定位相同。 当然,这个属性的兼容性也不是很好,所以如果你设置了position: sticky而不起作用的话,首先应当想到的是浏览器的兼容性问题,如果不是兼容性的问题,还有以下几种情况会导致这个属性失效 就是父元素的overflow属性值为:hidden auto scroll 或body height:100% 时, 解决方法:父元素不使用以上属性或子元素不使用position:sticky

来源:极客教程

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注