LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

徹底理解粘性定位 - position: sticky

freeflydom
2023年8月29日 11:52 本文熱度 1097

粘性定位可以被認(rèn)為是相對(duì)定位(position: relative)和固定定位(position: fixed)的混合。元素在跨越特定閾值前為相對(duì)定位,之后為固定定位。例如:

.sticky-header {
  position: sticky;
  top10px
}

在 視口滾動(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è)置 overflow:hidden
容器元素:離 sticky 元素最近的能滾動(dòng)的祖先元素。
粘性約束元素:粘性定位的父元素。有時(shí),也會(huì)出現(xiàn)粘性約束元素就是容器元素的情況。
sticky 元素:設(shè)置了 position: sticky; 的元素。

滾動(dòng)時(shí),sticky 元素設(shè)置的 left, right, top, bottom 的值相對(duì)的是容器元素。當(dāng)粘性約束元素滾出視口時(shí),sticky 元素也會(huì)滾出視口。

不生效的情況

情況1: 未指定 top, right, top 和 bottom 中的任何一個(gè)值

此時(shí),設(shè)置 position: sticky 相當(dāng)于設(shè)置 position: relative

要生效,要指定 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>

要生效,要把 overflow: hidden 的元素移除。

具體的例子

頁(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è)例子中,視口元素和容器元素都是 body。sticky 元素是 .title,因此只要在 sticky 元素上設(shè)置如下樣式即可:

.title {

  position: sticky;

  top: 0;

  background-color: #fff;

}

最后

粘性定位的瀏覽器兼容性也很好:95.76% 的瀏覽器支持[1]。大家可以放心的使用~

查看原文


該文章在 2023/8/29 11:58:20 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
性欧美在线看片a免费观看 亚洲欧美日韩中文在线v日本 | 日韩成视频在线精品 | 亚洲午夜精品福利视频 | 伊人五香丁香婷婷天堂网 | 亚洲第一区欧美国产综合86 | 久久亚洲一区二区 |