position:sticky是css定位新增屬性;可以說(shuō)是相對(duì)定位relative和固定定位fixed的結(jié)合;它主要用在對(duì)scroll事件的監(jiān)聽(tīng)上;簡(jiǎn)單來(lái)說(shuō),在滑動(dòng)過(guò)程中,某個(gè)元素距離其父元素的距離達(dá)到sticky粘性定位的要求時(shí)(比如top:100px);position:sticky這時(shí)的效果相當(dāng)于fixed定位,固定到適當(dāng)位置。
使用:
sticky-nav {
position: sticky;
top: 100px;
}
設(shè)置position:sticky同時(shí)給一個(gè)(top,bottom,right,left)之一即可
使用條件:
1、父元素不能overflow:hidden
在開(kāi)發(fā)時(shí),經(jīng)常會(huì)碰到需要這樣一種情況 —— 網(wǎng)站滾動(dòng)到一定高度的時(shí)候,讓一部分內(nèi)容作為navbar,也就是置頂顯示,我們一般會(huì)使用js監(jiān)聽(tīng)scroll事件來(lái)實(shí)現(xiàn),但是新增的css3屬性position:sticky可以簡(jiǎn)單實(shí)現(xiàn),省去了繁瑣的計(jì)算
position的含義是指定位類(lèi)型,取值類(lèi)型可以有:static、relative、absolute、fixed、inherit和sticky,這里sticky是CSS3新發(fā)布的一個(gè)屬性。我今天重點(diǎn)要說(shuō)的就是sticky屬性
position:ticky用法
position:sticky 被稱為粘性定位元素(stickily positioned element)是計(jì)算后位置屬性為 sticky 的元素。
簡(jiǎn)單的理解就是:在目標(biāo)區(qū)域以內(nèi),它的行為就像 position:relative;在滑動(dòng)過(guò)程中,某個(gè)元素距離其父元素的距離達(dá)到sticky粘性定位的要求時(shí)(比如top:100px);position:sticky這時(shí)的效果相當(dāng)于fixed定位,固定到適當(dāng)位置。
可以說(shuō)是相對(duì)定位relative和固定定位fixed的結(jié)合
元素固定的相對(duì)偏移是相對(duì)于離它最近的具有滾動(dòng)框的祖先元素,如果祖先元素都不可以滾動(dòng),那么是相對(duì)于viewport來(lái)計(jì)算元素的偏移量。
position:sticky 使用條件
1、必須指定top、bottom、left、right 4個(gè)值之一,否則只會(huì)處于相對(duì)定位
2、sticky元素僅在其父元素內(nèi)生效
3 、父元素不能overflow:hidden