学习html和css制作静态网页的过程中,想要实现导航栏在随着滚轮滚动一段距离后吸附在顶部的效果,需要使用到粘性布局position: sticky ;
position:sticky; 是position:absolute;(绝对定位)和position:fixed;(固定定位)的综合体。
在设置距离以内,元素以绝对定位的方式随滚轮滚动而滚动,超过设置距离后,元素以固定定位的方式固定在原地,不随滚轮的滚动而移动。
代码块主要代码行:
父元素中设置:
{ height: 100px ;
overflow: visible ; }
导航栏元素中设置:
{ position: sticky ;
top: 0 ; /*距离顶部距离为0时改用固定定位吧,不再滚动,根据自己实际需要赋值*/ }
注意事项:
1. 粘性吸顶效果在其父元素范围内均有效,但是如果一个元素不在其父元素内,当滚轮滚动到该元素上时,吸顶效果结束,导航栏会随着滚轮滚动。所以如果想要整个网页滚动过程中都保持导航栏吸顶,最好将body作为导航栏元素的父元素。
2. 需要为父元素设置height,并且height值不能小于导航栏的height值(如果你不想计算父元素的height值为多少才合适,可以设置一个不小于导航栏高度的min-height值)。