CSS——sticky定位

1. 大白話解釋sticky定位

粘性定位通俗來說,它就是相對定位relative和固定定位fixed的結合體,它的觸發過程分為三個階段

最近可滾動容器沒有觸發滑動之前,sticky盒子的表現為相對定位relative【第一階段】,

但當最近可滾動容器觸發滾動,父元素出現在最近可滾動容器的可視區并且滾動距離達到粘性定位sticky的要求時(比如top: 100px),sticky盒子的表現為固定定位fixed【第二階段】,

接著滾動,當sticky盒子的父元素消失在最近可滾動容器的可視區時,sticky盒子會重新表現為相對定位relative【第三階段】,

也就是說它不再固定,會隨著父元素消失在最近可滾動容器的可視區。

結合上面的描述,我們可以總結粘性定位的位置受兩個東西的影響:

  1. 父元素:父盒子不在最近可滾動容器可視區時,sticky盒子始終表現為相對定位。
  2. 最近可滾動的容器:設置sticky時使用的top、left等屬性是相對的就是可滾動的容器,只要容器的overflow不是visible【容器不設置overflow就默認是visible】那么容器就是可滾動容器,如果盒子的祖先們沒找到可滾動容器,那么body就作為可滾動容器,因為body是默認可滾動的。

2. 代碼體會sticky定位

下面我們結合代碼來理解:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>margin重疊問題</title><style>* {padding: 0;margin: 0;}.parent {width: 400px;height: 600px;background-color: tomato;overflow: visible;}.sticky {width: 200px;height: 200px;background-color: gold;/* 粘性定位 */position: sticky;top: 0px;}.box-top,.box-bot {width: 400px;background-color: pink;}.box-top {height: 200px;}.box-bot {height: 1000px;}</style>
</head><body><div class="box-top"></div><div class="parent"><div class="sticky">吸頂盒子</div></div><div class="box-bot"></div>
</body></html>

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

3. sticky生效的情況

sticky失效情況有:

  • 未指定top、right、bottom或left其中的一個
  • 父元素的高度小于sticky元素
  • 沒有找準sticky元素需要參考的最近可滾動元素
  • 如果參考的可滾動元素是body,那么父元素的overflow必須是visible,不能是其他任意值

參考博客:position:sticky失效問題剖析

參考視頻:粘性定位

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/207693.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/207693.shtml
英文地址,請注明出處:http://en.pswp.cn/news/207693.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【MATLAB】tvfEMD信號分解+FFT+HHT組合算法

有意向獲取代碼&#xff0c;請轉文末觀看代碼獲取方式~也可轉原文鏈接獲取~ 1 基本定義 TVFEMDFFTHHT組合算法是一種結合了總體變分模態分解&#xff08;TVFEMD&#xff09;、傅里葉變換&#xff08;FFT&#xff09;和希爾伯特-黃變換&#xff08;HHT&#xff09;的信號分解方…

vivado時序方法檢查8

TIMING-30 &#xff1a; 生成時鐘所選主源管腳欠佳 生成時鐘 <clock_name> 所選的主源管腳欠佳 &#xff0c; 時序可能處于消極狀態。 描述 雖然 create_generated_clock 命令允許您指定任意參考時鐘 &#xff0c; 但是生成時鐘應引用在其直接扇入中傳輸的時鐘。此…

電子學會C/C++編程等級考試2021年06月(五級)真題解析

C/C++等級考試(1~8級)全部真題?點這里 第1題:數字變換 給定一個包含5個數字(0-9)的字符串,例如 “02943”,請將“12345”變換到它。 你可以采取3種操作進行變換 1. 交換相鄰的兩個數字 2. 將一個數字加1。如果加1后大于9,則變為0 3. 將一個數字加倍。如果加倍后大于…

JS--異步的日常用法

目錄 JS 異步編程并發&#xff08;concurrency&#xff09;和并行&#xff08;parallelism&#xff09;區別回調函數&#xff08;Callback&#xff09;GeneratorPromiseasync 及 await常用定時器函數 JS 異步編程 并發&#xff08;concurrency&#xff09;和并行&#xff08;p…

Python中一些有趣的例題

下面會寫一些基礎的例題&#xff0c;有興趣的自己也可以練練手&#xff01; 1.假設手機短信收到的數字驗證碼為“278902”&#xff0c;編寫一個程序&#xff0c;讓用戶輸入數字驗證碼&#xff0c;如果數字驗證碼輸入正確&#xff0c;提示“支付成功”&#xff1b;否則提示“數…

Python configparser 模塊:優雅處理配置文件的得力工具

更多資料獲取 &#x1f4da; 個人網站&#xff1a;ipengtao.com 配置文件在軟件開發中扮演著重要的角色&#xff0c;而Python中的 configparser 模塊提供了一種優雅而靈活的方式來處理各種配置需求。本文將深入介紹 configparser 模塊的各個方面&#xff0c;通過豐富的示例代碼…

嵌入式雜記 - MDK的Code, RO-data , RW-data, ZI-data意思

嵌入式雜記 - Keil的Code, RO-data , RW-data, ZI-data意思 MDK中的數據分類MCU中的內部存儲分布MDK中數據類型存儲Code代碼段例子 RO-data 只讀數據段例子 RW-data 可讀寫數據段例子 ZI-data 清零數據段例子 在嵌入式開發中&#xff0c;我們經常都會使用一些IDE&#xff0c;例…

Hadoop學習筆記(HDP)-Part.17 安裝Spark2

目錄 Part.01 關于HDP Part.02 核心組件原理 Part.03 資源規劃 Part.04 基礎環境配置 Part.05 Yum源配置 Part.06 安裝OracleJDK Part.07 安裝MySQL Part.08 部署Ambari集群 Part.09 安裝OpenLDAP Part.10 創建集群 Part.11 安裝Kerberos Part.12 安裝HDFS Part.13 安裝Ranger …

Web前端 ---- 【Vue】Vuex的使用(輔助函數、模塊化開發)

目錄 前言 Vuex是什么 Vuex的配置 安裝vuex 配置vuex文件 Vuex核心對象 actions mutations getters state Vuex在vue中的使用 輔助函數 Vuex模塊化開發 前言 本文介紹一種新的用于組件傳值的插件 —— vuex Vuex是什么 Vuex 是一個專為 Vue.js 應用程序開發的狀態…

淺談前端代碼里的命名規范與注釋

淺談前端代碼里的命名規范與注釋 在前端代碼中&#xff0c;命名規范和注釋是非常重要的。它們不僅有助于提高代碼的可讀性和可維護性&#xff0c;還可以幫助開發者之間更好地協作和溝通。下面是一些關于命名規范和注釋的常見建議&#xff1a; 命名規范&#xff1a; 使用有意義…

【ArcGIS Pro微課1000例】0053:基于SQL Server創建與啟用地理數據庫

之前的文章有講述基于SQL Server創建企業級地理數據庫,本文講述在SQL Server中創建常規的關心數據庫,然后在ArcGIS Pro中將其啟用,轉換為企業級地理數據庫。 1. 在SQL Server中創建數據庫** 打開SQL Server 2019,連接到數據庫服務器。 展開數據庫連接,在數據庫上右鍵→新…

python中的lambda關鍵字

對于一切很模糊的知識&#xff0c;首要的是抓住概念的定義。 lambda&#xff1a;在 Python 中用于創建匿名函數的關鍵字。 也即&#xff0c;lambda是一種關鍵字&#xff0c;這種關鍵字的作用是創建匿名函數。 這一段很好懂&#xff0c;就是匿名函數有點懵。 什么是匿名函數&…

mybatis-plus構造器查詢

文章目錄 Hutool工具包Vo與entity轉換多表分頁查詢構造器&#xff1a;查詢構造器&#xff1a;拼接構造器&#xff1a;刪除操作構造器&#xff1a;修改操作查詢關鍵字 Hutool工具包Vo與entity轉換 BeanUtils&#xff1a;copyProperties(vo, entity)&#xff0c;vo轉實體類。 L…

在裝有 PostgreSQL 14 的 Red Hat8上安裝 `pg_cron`

要在裝有 PostgreSQL 14 的 Red Hat、CentOS、Fedora 或 Amazon Linux 上安裝 pg_cron&#xff0c;請遵循以下步驟。這些步驟假定您已經安裝了 PostgreSQL Global Development Group (PGDG) 的 PostgreSQL 版本。 安裝 pg_cron 擴展 使用 yum 安裝 pg_cron 擴展&#xff1a;s…

(四)Tiki-taka算法(TTA)求解無人機三維路徑規劃研究(MATLAB)

一、無人機模型簡介&#xff1a; 單個無人機三維路徑規劃問題及其建模_IT猿手的博客-CSDN博客 參考文獻&#xff1a; [1]胡觀凱,鐘建華,李永正,黎萬洪.基于IPSO-GA算法的無人機三維路徑規劃[J].現代電子技術,2023,46(07):115-120 二、Tiki-taka算法&#xff08;TTA&#xf…

基于SSH的java記賬管理系統

基于SSH的java記賬管理系統 一、系統介紹二、功能展示四、其他系統實現五、獲取源碼 一、系統介紹 項目類型&#xff1a;Java EE項目 項目名稱&#xff1a;基于SSH的記賬管理系統 項目架構&#xff1a;B/S架構 開發語言&#xff1a;Java語言 前端技術&#xff1a;HTML、CS…

初識優先級隊列與堆

1.優先級隊列 由前文隊列queue可知&#xff0c;隊列是一種先進先出(FIFO)的數據結構&#xff0c;但有些情況下&#xff0c;操作的數據可能帶有優先級&#xff0c;一般出隊列時&#xff0c;可能需要優先級高的元素先出隊列&#xff0c;在此情況下&#xff0c;使用隊列queue顯然不…

git常用命令指南

目錄 一、基本命令 1、創建分支 2、切換分支 3、合并分支 4、初始化空git倉庫 二、文件操作 1、創建文件 2、添加多個文件 3、查看項目的當前狀態 4、修改文件 5、刪除文件 6、提交項目 三、實際操作 1、創建目錄 2、進入新目錄 3、初始化空git倉庫 4、創建文…

C++STL的string模擬實現

文章目錄 前言string的成員變量成員函數構造函數拷貝構造賦值重載 模擬實現string各種接口print迭代器普通迭代器const迭代器 string比較大小push_backinsert 和 eraseinserterase reserve和resizereserveresize swapfindcout和cincoutcin 前言 今天要講string的底層實現&…

總線(什么是南北橋?您都用過哪些總線?)

什么是總線&#xff1f; 計算機系統中的總線&#xff08;Bus&#xff09;是指計算機設備和設備之間傳輸信息的公共數據通道&#xff0c;是連接計算機硬件系統內多種設備的通信線路&#xff0c;它的一個重要特征是由總線上的所有設備共享&#xff0c;因此可以將計算機系統內的多…