本文主要是介绍position:sticky实现粘性布局,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
生效规则
position:sticky 的生效是有一定的限制的,总结如下:
须指定 top, right, bottom 或 left 四个阈值其中之一,才可使粘性定位生效。否则其行为与相对定位相同。
并且 top 和 bottom 同时设置时,top 生效的优先级高,left 和 right 同时设置时,left 的优先级高。
设定为 position:sticky 元素的任意父节点的 overflow 属性必须是 visible,否则 position:sticky 不会生效。这里需要解释一下:
如果 position:sticky 元素的任意父节点定位设置为 overflow:hidden,则父容器无法进行滚动,所以 position:sticky 元素也不会有滚动然后固定的情况。
如果 position:sticky 元素的任意父节点定位设置为 position:relative | absolute | fixed,则元素相对父元素进行定位,而不会相对 viewprot 定位。
达到设定的阀值。这个还算好理解,也就是设定了 position:sticky 的元素表现为 relative 还是 fixed 是根据元素是否达到设定了的阈值决定的。
示例代码如下:
HTML:
<div class="container"><nav>我是导航栏</nav><div class="content"><p>我是内容栏</p><p>我是内容栏</p><p>我是内容栏</p><p>我是内容栏</p><p>我是内容栏</p><p>我是内容栏</p><p>我是内容栏</p><p>我是内容栏</p></div>
</div>
CSS:
.container {background: #eee;width: 600px;height: 1000px;margin: 0 auto;
}nav {position: -webkit-sticky;position: sticky;top:0;}nav {height: 50px;background: #999;color: #fff;font-size: 30px;line-height: 50px;
}.content {margin-top: 30px;background: #ddd;
}p {line-height: 40px;font-size: 20px;
}
自己可以尝试一下,看下效果。
这篇关于position:sticky实现粘性布局的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!