用户的屏幕越来越大,而页面太宽的话会不宜阅读,所以绝大部分网站的主体宽度和之前相比没有太大的变化,于是浏览器中就有越来越多的空白区域,所以你可能注意到很多网站开始在滚动的时候让一部分内容保持可见,比如,侧边栏的部分区域。position:sticky为此而生。
- position属性中最有意思的就是sticky了,设置了sticky的元素,在屏幕范围(viewport)时该元素的位置并不受到定位影响(设置是top、left等属性无效),当该元素的位置将要移出偏移范围时,定位又会变成fixed,根据设置的left、top等属性成固定位置的效果。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
.head {
height: 80px;
background-color: #fff;
position: sticky;
top: 0px;
}
.box {
height: 400px;
line-height: 400px;
font-size: 40px;
text-align: center;
}
.one {
background-color: rebeccapurple;
}
.two {
background-color: red;
}
.three {
background-color: darkblue;
}
</style>
</head>
<body>
<div class="head one">第一段的头部信息</div>
<div class="box">内容1</div>
<div class="head two">第二段的头部信息</div>
<div class="box">内容2</div>
<div class="head three">第三段的头部信息</div>
<div class="box">内容3</div>
</body>
</html>
GIF.gif当class为head的div到达顶部时,固定在顶部不动,直到下一个class为head的div来到顶部。
网友评论