<style>
* {
padding: 0;
margin: 0;
}
body {
height: 2000px;
}
.box1 {
position: sticky;
top: 100px;
margin: 100px auto;
width: 30px;
height: 90px;
background-color: pink;
}
.box2 {
width: 100px;
height: 100px;
background-color: skyblue;
}
</style>
</head>
<body>
<div class="box1">
</div>
</body>
当box距离文档可视区域顶栏100px时,变为固定定位,无论怎么拉动滚动栏,box距离文档可视区都保持100px不变,由于Box margin-top为100px,所以从开始拉滚动条到结束,box相对文档可视区没有变过。
<style>
* {
padding: 0;
margin: 0;
}
body {
height: 2000px;
}
.box1 {
position: sticky;
top: 100px;
margin: 10px auto;
width: 30px;
height: 90px;
background-color: pink;
}
.box2 {
width: 100px;
height: 100px;
background-color: skyblue;
}
</style>
</head>
<body>
<div class="box1">
</div>
</body>
有滚动栏位于初始位置可知,box top为100px,margin-top为10px,所以直到滚动条滚动到结束,box相对于文档可视区相对位置保持不变
<style>
* {
padding: 0;
margin: 0;
}
body {
height: 2000px;
}
.box1 {
position: sticky;
top: 0px;
margin: 100px auto;
width: 30px;
height: 90px;
background-color: pink;
}
.box2 {
width: 100px;
height: 100px;
background-color: skyblue;
}
</style>
</head>
<body>
<div class="box1">
</div>
</body>
由第一图滚动初始box top-0,margin-top=100,当滚动条从0到100Px之间,box随着滚动条而向上滚动,等距离文档可视区100px,之后滚动条即便滚动,Box相对文档可视区位置不再变化
粘性定位的特点:
1.以浏览器的可视窗口为参照点移动元素(固定定位特点)
2.粘性定位占有原先的位置(相对定位特点)
3.必须添加 top 、left、right、bottom 其中一个才有效
跟页面滚动搭配使用。 兼容性较差,IE 不支持。