徹底理解粘性定位 - position: sticky
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
粘性定位可以被認(rèn)為是相對(duì)定位(position: relative)和固定定位(position: fixed)的混合。元素在跨越特定閾值前為相對(duì)定位,之后為固定定位。例如: .sticky-header { position: sticky; top: 10px; } 在 視口滾動(dòng)到元素 top 距離小于 10px 之前,元素為相對(duì)定位。之后,元素將固定在與頂部距離 10px 的位置,直到視口回滾到閾值以下。 粘性定位常作用在導(dǎo)航和概覽信息(標(biāo)題,表頭,操作欄,底部評(píng)論等)上。這樣,用戶在瀏覽詳細(xì)信息時(shí),也能看到信息的概覽和做一些操作,給用戶帶來(lái)便捷的使用體驗(yàn)。 粘性定位看著很簡(jiǎn)單,但也很容易出現(xiàn)不生效的情況。為幫助大家徹底理解粘性定位,本文會(huì)從 3 個(gè)方面來(lái)介紹:
原理為便于理解粘性定位,這里引入四個(gè)元素:視口元素,容器元素,粘性約束元素 和 sticky 元素。它們的關(guān)系如下: ![]() 視口元素:顯示內(nèi)容的區(qū)域。會(huì)設(shè)置寬,高。一般會(huì)設(shè)置 滾動(dòng)時(shí),sticky 元素設(shè)置的 left, right, top, bottom 的值相對(duì)的是容器元素。當(dāng)粘性約束元素滾出視口時(shí),sticky 元素也會(huì)滾出視口。 不生效的情況情況1: 未指定 top, right, top 和 bottom 中的任何一個(gè)值此時(shí),設(shè)置 要生效,要指定 top, right, top 或 bottom 中的任何一個(gè)值。 情況2: 垂直滾動(dòng)時(shí),粘性約束元素高度小于等于 sticky 元素高度不生效的原因:當(dāng)粘性約束元素滾出視口時(shí),sticky 元素也會(huì)滾出視口。粘性約束元素比 sticky 元素還小,sticky 元素沒(méi)有顯示固定定位狀態(tài)的機(jī)會(huì)。 同樣的,水平滾動(dòng)時(shí),粘性約束元素寬度小于等于 sticky 元素寬度時(shí),也不會(huì)生效。 情況3: 粘性約束元素和容器元素之間存在 overflow: hidden 的元素該情況的示例代碼: <div class="viewport"> <div class="container"> <!-- 容器元素 --> <div style="overflow: hidden"> <div> <!-- 粘性約束元素 --> <div class="stick-elem">...</div> <!-- sticky 元素 --> ... </div> </div> </div> </div> 要生效,要把 具體的例子頁(yè)面滾動(dòng)這個(gè)例子,我們來(lái)實(shí)現(xiàn)頁(yè)面滾動(dòng)到文章內(nèi)容時(shí),文章標(biāo)題吸頂?shù)男Ч?/p> <div class="header">網(wǎng)站頭部</div> <!-- 粘性約束元素 --> <div class="article"> <!-- sticky 元素 --> <h2 class="title">徹底理解粘性定位 - position: sticky</h2> <div class="content">...</div> </div> <div class="footer">網(wǎng)站底部</div> 在這個(gè)例子中,視口元素和容器元素都是 .title { position: sticky; top: 0; background-color: #fff; } 最后粘性定位的瀏覽器兼容性也很好:95.76% 的瀏覽器支持[1]。大家可以放心的使用~ 該文章在 2023/8/29 11:58:20 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |