CSS 定位學習筆記

一、定位概述

CSS 定位是控制 HTML 元素在頁面中位置的核心技術,允許元素脫離正常文檔流,實現復雜布局效果。

二、定位類型對比

定位類型屬性值參考基準是否脫離文檔流常用場景
靜態定位static默認布局
相對定位relative自身原位置元素微調
絕對定位absolute最近非static祖先精確位置控制
固定定位fixed瀏覽器窗口固定位置元素

三、各定位方式詳解

1. 靜態定位(static)

  • 默認定位方式

  • 不受top/right/bottom/left影響

  • 保持正常文檔流

.element {position: static; /* 通常可省略 */
}

2. 相對定位(relative)

  • 相對于自身原位置偏移

  • 保留原空間(不脫離文檔流)

  • 常用于微調或作為絕對定位的容器

.box {position: relative;top: 10px;left: 20px;
}

3. 絕對定位(absolute)

  • 相對于最近非static祖先定位

  • 完全脫離文檔流

  • 需要配合定位父元素使用

.parent {position: relative; /* 建立定位上下文 */
}.child {position: absolute;top: 0;right: 0;
}

4. 固定定位(fixed)

  • 相對于瀏覽器窗口定位

  • 不隨頁面滾動

  • 常用于導航欄、懸浮按鈕等

.navbar {position: fixed;top: 0;left: 0;width: 100%;
}

四、偏移屬性

  • top/right/bottom/left

  • 接受長度值(px/em/rem)或百分比(%)

  • 相對定位:相對于元素原位置

  • 絕對/固定定位:相對于定位上下文

.element {position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%); /* 居中技巧 */
}

五、層疊順序控制

  • z-index控制堆疊順序

  • 僅對非static元素有效

  • 值越大越靠前

  • 未設置時按DOM順序堆疊

.modal {position: fixed;z-index: 1000; /* 確保在最上層 */
}

六、實用技巧與注意事項

  1. 定位上下文:絕對定位元素需有非static祖先作為參考

  2. 性能考慮:fixed定位元素頻繁重繪可能影響性能

  3. 響應式設計:定位元素可能需要特殊媒體查詢處理

  4. 滾動處理:fixed元素可能遮擋內容,需預留空間

  5. 居中技巧:絕對定位+transform實現完美居中

七、常見應用場景

  1. 下拉菜單(絕對定位)

  2. 模態框(fixed定位)

  3. 懸浮按鈕(fixed定位)

  4. 特殊裝飾元素(相對/絕對定位)

  5. 粘性頭部(fixed定位)

八、總結

CSS定位是構建現代網頁布局的基石,掌握四種定位方式的特性和適用場景,配合偏移屬性和z-index,可以創建出各種復雜的布局效果。關鍵是要理解每種定位的參考系和文檔流影響,在實踐中靈活運用。

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

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

相關文章

Threejs中頂視圖截圖

Threejs中頂視圖截圖 一般項目中的每個模型,都需要有一張對應的圖片,一般是頂視圖,在對應的2D場景場景中展示。以下分享一個實現方式,先將清空模型材質的紋理,把顏色設置為白色,使用正交相機截取頂視圖&am…

深度探索:DeepSeek賦能WPS圖表繪制

一、研究背景 在當今數字化信息爆炸的時代,數據處理與可視化分析已成為眾多領域研究和決策的關鍵環節。隨著數據量的急劇增長和數據維度的不斷豐富,傳統的數據可視化工具在應對復雜數據時逐漸顯露出局限性。Excel作為廣泛應用的電子表格軟件,…

第11章 面向分類任務的表示模型微調

??????第1章 對大型語言模型的介紹第2章 分詞和嵌入第3章 解析大型語言模型的內部機制第4章 文本分類第5章 文本聚類與主題建模第6章 提示工程第7章 高級文本生成技術與工具第8章 語義搜索與檢索增強生成第9章 多模態大語言模型第10章 構建文本嵌入模型第12章 微調生成模…

4.換行和續寫

一.FileOutputStream寫出數據的兩個小問題: 問題一:換行 假設在本地文件中要輸出數據aweihaoshuai 666,在輸出這個數據時要換行寫出,如下圖: 問題二:續寫 假設在一個文本文件中已經存在數據aweihaoshuai…

聯易融受邀參加上海審計局金融審計處專題交流座談

近日,聯易融科技集團受邀出席了由上海市審計局金融審計處組織的專題交流座談,憑借其在供應鏈金融領域的深厚積累和創新實踐,聯易融為與會人員帶來了精彩的分享,進一步加深現場對供應鏈金融等金融發展前沿領域的理解。 在交流座談…

SOC估算:開路電壓修正的安時積分法

SOC估算:開路電壓修正的安時積分法 基本概念 開路電壓修正的安時積分法是一種結合了兩種SOC估算方法的混合技術: 安時積分法(庫侖計數法) - 通過電流積分計算SOC變化 開路電壓法 - 通過電池電壓與SOC的關系曲線進行校準 方法原…

代碼隨想錄打卡|Day27(合并區間、單調遞增的數字、監控二叉樹)

貪心算法 Part05 合并區間 力扣題目鏈接 代碼隨想錄鏈接 視頻講解鏈接 題目描述: 以數組 intervals 表示若干個區間的集合,其中單個區間為 intervals[i] [starti, endi] 。請你合并所有重疊的區間,并返回 一個不重疊的區間數組&#xff0…

PostgreSQL的擴展 pg_cron

PostgreSQL的擴展 pg_cron pg_cron 是 PostgreSQL 的一個開源擴展,它允許在數據庫內部使用 cron 語法調度定期任務,是最接近 Oracle DBMS_SCHEDULER 的解決方案。 一 安裝與配置 1 安裝方法 下載路徑: https://github.com/citusdata/pg_…

卷積神經網絡遷移學習:原理與實踐指南

引言 在深度學習領域,卷積神經網絡(CNN)已經在計算機視覺任務中取得了巨大成功。然而,從頭開始訓練一個高性能的CNN模型需要大量標注數據和計算資源。遷移學習(Transfer Learning)技術為我們提供了一種高效解決方案,它能夠將預訓練模型的知識…

圖論---樸素Prim(稠密圖)

O( n ^2 ) 題目通常會提示數據范圍&#xff1a; 若 V ≤ 500&#xff0c;兩種方法均可&#xff08;樸素Prim更穩&#xff09;。 若 V ≤ 1e5&#xff0c;必須用優先隊列Prim vector 存圖。 // 最小生成樹 —樸素Prim #include<cstring> #include<iostream> #i…

Spring-Cache替換Keys為Scan—負優化?

背景 使用ORM工具是往往會配合緩存框架實現三級緩存提高查詢效率&#xff0c;spring-cache配合redis是非常常規的實現方案&#xff0c;如未做特殊配置&#xff0c;CacheEvict(allEntries true) 的批量驅逐方式&#xff0c;默認使用keys的方式查詢歷史緩存列表而后delete&…

【N8N】Docker Desktop + WSL 安裝過程(Docker Desktop - WSL update Failed解決方法)

背景說明&#xff1a; 因為要用n8n&#xff0c;官網推薦這個就下載了&#xff0c;然后又是一堆卡的安裝問題記錄過程。 1. 下載安裝包 直接去官網Get Docker | Docker Docs下載 下載的是第一個windows - x86_64. &#xff08;*下面那個beta的感覺是測試版&#xff09; PS&am…

RT Thread 發生異常時打印輸出cpu寄存器信息和棧數據

打印輸出發生hardfault時,當前棧十六進制數據和cpu寄存器信息 在發生 HardFault 時,打印當前棧的十六進制數據和 CPU 寄存器信息是非常重要的調試手段。以下是如何實現這一功能的具體步驟和示例代碼。 1. 實現 HardFault 處理函數 我們需要在 HardFault 中捕獲異常上下文,…

【安裝neo4j-5.26.5社區版 完整過程】

1. 安裝java 下載 JDK21-windows官網地址 配置環境變量 在底下的系統變量中新建系統變量&#xff0c;變量名為JAVA_HOME21&#xff0c;變量值為JDK文件夾路徑&#xff0c;默認為&#xff1a; C:\Program Files\Java\jdk-21然后在用戶變量的Path中&#xff0c;添加下面兩個&am…

android jatpack Compose 多數據源依賴處理:從狀態管理到精準更新的架構設計

Android Compose 多接口數據依賴管理&#xff1a;ViewModel 狀態共享最佳實踐 &#x1f4cc; 問題背景 在 Jetpack Compose 開發中&#xff0c;經常遇到以下場景&#xff1a; 頁面由多個獨立接口數據組成&#xff08;如 Part1、Part2&#xff09;Part2 的某些 UI 需要依賴 P…

面試之消息隊列

消息隊列場景 什么是消息隊列&#xff1f; 消息隊列是一個使用隊列來通信的組件&#xff0c;它的本質就是個轉發器&#xff0c;包含發消息、存消息、消費消息。 消息隊列怎么選型&#xff1f; 特性ActiveMQRabbitMQRocketMQKafka單機吞吐量萬級萬級10萬級10萬級時效性毫秒級…

GStreamer 簡明教程(十一):插件開發,以一個音頻生成(Audio Source)插件為例

系列文章目錄 GStreamer 簡明教程&#xff08;一&#xff09;&#xff1a;環境搭建&#xff0c;運行 Basic Tutorial 1 Hello world! GStreamer 簡明教程&#xff08;二&#xff09;&#xff1a;基本概念介紹&#xff0c;Element 和 Pipeline GStreamer 簡明教程&#xff08;三…

Linux kernel signal原理(下)- aarch64架構sigreturn流程

一、前言 在上篇中寫到了linux中signal的處理流程&#xff0c;在do_signal信號處理的流程最后&#xff0c;會通過sigreturn再次回到線程現場&#xff0c;上篇文章中介紹了在X86_64架構下的實現&#xff0c;本篇中介紹下在aarch64架構下的實現原理。 二、sigaction系統調用 #i…

華為OD機試真題——簡易內存池(2025A卷:200分)Java/python/JavaScript/C++/C/GO最佳實現

2025 A卷 200分 題型 本文涵蓋詳細的問題分析、解題思路、代碼實現、代碼詳解、測試用例以及綜合分析&#xff1b; 并提供Java、python、JavaScript、C、C語言、GO六種語言的最佳實現方式&#xff01; 本文收錄于專欄&#xff1a;《2025華為OD真題目錄全流程解析/備考攻略/經驗…

騰訊一面面經:總結一下

1. Java 中的 和 equals 有什么區別&#xff1f;比較對象時使用哪一個 1. 操作符&#xff1a; 用于比較對象的內存地址&#xff08;引用是否相同&#xff09;。 對于基本數據類型、 比較的是值。&#xff08;8種基本數據類型&#xff09;對于引用數據類型、 比較的是兩個引…