粘性定位能夠簡單理解爲
relative
和fixed
佈局的混合。
流盒css
指的是粘性定位元素最近的可滾動元素
(overflow屬性值不是visible的元素)的尺寸盒子,若是沒有可滾動元素,則表示瀏覽器視窗盒子。html
粘性約束矩形瀏覽器
即粘性佈局元素的父級元素矩形wordpress
relative
,反之,則爲fixed
overflow
屬性設置了scroll
,auto
,overlay
值,那麼,粘性定位將會失效<body>
<div>
<nav>導航</nav>
</div>
</body>
複製代碼
body{
height: 2000px;
width: 100%;
background-color: red;
}
div {
height: 200px;
margin-top: 50px;
border: solid deepskyblue;
width: 400px;
background-color: deepskyblue;
}
nav {
position: sticky;
top: 20px;
background: yellow;
height: 60px;
line-height: 60px;
}
複製代碼
因此,若是粘性定位元素的高度若是和粘性定位的父元素高度相等的話,粘性定位元素在粘性約束矩形中將會沒有實現粘性效果的活動空間,隨着粘性約束矩形消失在可視範圍內時,粘性定位元素也將會一同消失在可視範圍內,也就是所謂的失效效果。佈局
<body>
<div>
<nav>導航</nav>
<header>頭部</header>
</div>
</body>
複製代碼
body{
height: 2000px;
width: 100%;
background-color: red;
}
div {
height: 200px;
margin-top: 50px;
border: solid deepskyblue;
width: 400px;
background-color: deepskyblue;
}
nav {
position: sticky;
top: 20px;
background: yellow;
height: 60px;
line-height: 60px;
}
header {
position: sticky;
top: 20px;
background: green;
height: 60px;
line-height: 60px;
display: block;
}
複製代碼
能夠看到當一個父元素內有兩個粘性元素時,後面的粘性元素隨着滾動會覆蓋前面的粘性元素。spa
可是,若是給黃色導航設置z-index:20
,綠色頭部設置z-index:19
,那麼,黃色將會覆蓋綠色,而不是原本的後來居上的效果。畢竟,當出現粘性效果的時候,此時元素的效果至關position:fixed
,z-index
會生效。code
www.zhangxinxu.com/wordpress/2… www.zhangxinxu.com/wordpress/2…cdn