CSS- 4.2 相對定位(position: relative)

本系列可作為前端學習系列的筆記,代碼的運行環境是在HBuilder中,小編會將代碼復制下來,大家復制下來就可以練習了,方便大家學習。

HTML系列文章?已經收錄在前端專欄,有需要的寶寶們可以點擊前端專欄查看!

點贊關注不迷路!您的點贊、關注和收藏是對小編最大的支持和鼓勵!

系列文章目錄

CSS- 1.1 css選擇器

CSS- 2.1 實戰之圖文混排、表格、表單、學校官網一級導航欄

CSS- 3.1 盒子模型-塊級元素、行內元素、行內塊級元素和display屬性

CSS- 4.1 浮動(Float)

CSS- 4.2 相對定位(position: relative)

CSS- 4.3 絕對定位(position: absolute)&學校官網導航欄實例

CSS- 4.4 固定定位(fixed)& 咖啡售賣官網實例

CSS- 4.5 css + div 布局 & 簡易網易云音樂 官網布置實例?

CSS- 4.6 radiu、shadow、animation動畫

CSS- 5.1 Transition 過渡??


目錄

系列文章目錄

前言

一、理論部分

1.基本概念

2.語法

3.特點詳解

4.實際應用場景

(1) 微調元素位置

(2)作為絕對定位的參考點

(3)創建視覺效果而不破壞布局

5.與其他定位方式的比較

6.注意事項

7.最佳實踐

二、代碼實例

總結


前言

小編作為新晉碼農一枚,會定期整理一些寫的比較好的代碼,作為自己的學習筆記,會試著做一下批注和補充,如轉載或者參考他人文獻會標明出處,非商用,如有侵權會刪改!歡迎大家斧正和討論!

一、理論部分

相對定位(position: relative是CSS定位屬性中的一種,它允許元素相對于其正常文檔流中的位置進行偏移,同時保留其在文檔流中的原始空間。

1.基本概念

相對定位的元素會:

  1. 保留原始空間:元素在文檔流中仍然占據原來的位置
  2. 相對于自身偏移:通過toprightbottomleft屬性相對于其正常位置進行偏移
  3. 不影響其他元素:其他元素會像該元素仍在原位置一樣進行布局

2.語法

css

.element {position: relative;top: 10px;    /* 向下偏移10像素 */left: 20px;   /* 向右偏移20像素 *//* 或使用其他方向 *//* right: 10px; *//* bottom: 10px; */
}

3.特點詳解

  1. 空間保留
    相對定位的元素在文檔流中仍然占據其原始位置,只是視覺上看起來移動了。其他元素不會填補它"離開"的空間。

  2. 偏移基準
    偏移是相對于元素在正常文檔流中的位置計算的,而不是相對于父元素或其他元素。

  3. 層級提升
    相對定位的元素會創建一個新的層疊上下文(stacking context),但不會脫離文檔流。

4.實際應用場景

(1) 微調元素位置

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><style type="text/css">.box {width: 100px;height: 100px;background: lightblue;margin: 10px;}.relative-box {position: relative;top: 20px;left: 30px;background: lightcoral;}</style></head><body><div class="box">原始位置</div><div class="box relative-box">相對定位</div></body>
</html>

效果:第二個div會向下偏移20px,向右偏移30px,但第一個div不會移動填補這個空間。

(2)作為絕對定位的參考點

相對定位常被用作絕對定位子元素的參考容器:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><style type="text/css">.parent {position: relative;width: 300px;height: 200px;background: #eee;}.child {position: absolute;top: 10px;right: 10px;background: #ff0;}</style></head><body><div class="parent"><div class="child">絕對定位的子元素</div></div></body>
</html>

在這個例子中,子元素的絕對定位是相對于其相對定位的父元素計算的。

(3)創建視覺效果而不破壞布局

相對定位可以用于創建懸停效果、工具提示等,而不影響頁面其他部分的布局。

5.與其他定位方式的比較

定位方式是否脫離文檔流偏移基準是否影響其他元素
靜態定位(static)
相對定位(relative)元素自身原始位置
絕對定位(absolute)最近的已定位祖先元素
固定定位(fixed)視口
粘性定位(sticky)混合視口或最近的滾動祖先否(通常)

6.注意事項

  1. 性能考慮:相對定位的元素仍然參與文檔流計算,大量使用可能影響渲染性能
  2. 層疊順序:相對定位的元素會覆蓋靜態定位的元素(除非設置z-index)
  3. 響應式設計:在響應式布局中,相對定位可能需要配合媒體查詢調整偏移值
  4. 可訪問性:過度使用定位可能影響屏幕閱讀器的用戶體驗

7.最佳實踐

  1. 用于微調元素位置而非主要布局
  2. 作為絕對定位元素的定位上下文容器
  3. 避免在需要精確控制的響應式布局中過度使用
  4. 結合transform屬性(如translate())可能比使用top/left更高效

相對定位是CSS定位系統中一個靈活而強大的工具,特別適合需要微調元素位置而不破壞整體布局的場景。

二、代碼實例

代碼實例如下:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>定位-相對定位relative</title><style type="text/css">.div1 {width: 100px;height: 100px;background-color: red;}.div2 {width: 100px;height: 100px;background-color: blue;position: relative;/* 以原來的位置為基準發生偏移 */left: 100px;top: -50px;}.div3 {width: 100px;height: 100px;background-color: green;}#btn {position: relative;top: 2px;}</style></head><body><div class="father"><div class="div1"></div><div class="div2"></div><div class="div3"></div><input type="" name="" id="btn" value="" /></div><a href="../個人主題網站/index.html"><h3 align="center">返回首頁</h3></a></body>
</html>

代碼運行:


總結

以上就是今天要講的內容,本文簡單記錄了CSS之相對定位,僅作為一份簡單的筆記使用,大家根據注釋理解

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

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

相關文章

如何使用Antv X6使用拖拽布局?

拖拽效果圖 拖拽后 布局預覽 官方&#xff1a; X6 圖編輯引擎 | AntV 安裝依賴 # npm npm install antv/x6 --save npm install antv/x6-plugin-dnd --save npm install antv/x6-plugin-export --save需要引入的代碼 import { Graph, Shape } from antv/x6; import { Dnd } …

數據庫健康監測器(BHM)實戰:如何通過 HTML 報告識別潛在問題

在數據庫運維中,健康監測是保障系統穩定性與性能的關鍵環節。通過 HTML 報告,開發者可以直觀查看數據庫的運行狀態、資源使用情況與潛在風險。 本文將圍繞 數據庫健康監測器(Database Health Monitor, BHM) 的核心功能展開分析,結合 Prometheus + Grafana + MySQL Export…

PCB設計實踐(二十四)PCB設計時如何避免EMI

PCB設計中避免電磁干擾&#xff08;EMI&#xff09;是一項涉及電路架構、布局布線、材料選擇及制造工藝的系統工程。本文從設計原理到工程實踐&#xff0c;系統闡述EMI產生機制及綜合抑制策略&#xff0c;覆蓋高頻信號控制、接地優化、屏蔽技術等核心維度&#xff0c;為高密度、…

嵌入式硬件篇---陀螺儀|PID

文章目錄 前言1. 硬件準備主控芯片陀螺儀模塊電機驅動電源其他2. 硬件連接3. 軟件實現步驟(1) MPU6050初始化與數據讀取(2) 姿態解算(互補濾波或DMP)(3) PID控制器設計(4) 麥克納姆輪協同控制4. 主程序邏輯5. 關鍵優化與調試技巧(1) 傳感器校準(2) PID參數整定先調P再調D最后…

【Linux基礎I/O】文件調用接口、文件描述符、重定向和緩沖區

【Linux基礎I/O一】文件描述符和重定向 1.C語言的文件調用接口2.操作系統的文件調用接口2.1open接口2.2close接口2.3write接口2.4read接口 3.文件描述符fd的本質4.標準輸入、輸出、錯誤5.重定向5.1什么是重定向5.2輸入重定向和輸出重定向5.3系統調用的重定向dup2 6.緩沖區 1.C語…

鴻蒙HarmonyOS 【ArkTS組件】通用屬性-背景設置

&#x1f4d1;往期推文全新看點&#xff08;附帶最新鴻蒙全棧學習筆記&#xff09; 嵌入式開發適不適合做鴻蒙南向開發&#xff1f;看完這篇你就了解了~ 鴻蒙崗位需求突增&#xff01;移動端、PC端、IoT到底該怎么選&#xff1f; 分享一場鴻蒙開發面試經驗記錄&#xff08;三面…

【76. 最小覆蓋子串】

Leetcode算法練習 筆記記錄 76. 最小覆蓋子串 76. 最小覆蓋子串 滑動窗口的hard題目&#xff0c;思路先找到第一個覆蓋的窗口&#xff0c;不斷縮小左邊界&#xff0c;找到更小的窗口并記錄。 思路很簡單&#xff0c;寫起來就不是一會事了&#xff0c;看題解看了幾個h&#xff0…

Spring事務簡單操作

什么是事務&#xff1f; 事務是一組操作的集合&#xff0c;是一個不可分割的操作 事務會把所有的操作作為?個整體, ?起向數據庫提交或者是撤銷操作請求. 所以這組操作要么同時 成功, 要么同時失敗. 事務的操作 分為三步&#xff1a; 1. 開啟事start transaction/ begin …

Rust 學習筆記:關于錯誤處理的練習題

Rust 學習筆記&#xff1a;關于錯誤處理的練習題 Rust 學習筆記&#xff1a;關于錯誤處理的練習題想看到回溯&#xff0c;需要把哪個環境變量設置為 1&#xff1f;以下哪一項不是使用 panic 的好理由&#xff1f;以下哪一項最能描述為什么 File::open 返回的是 Result 而不是 O…

MCP 協議傳輸機制大變身:拋棄 SSE,投入 Streamable HTTP 的懷抱

在技術的江湖里&#xff0c;變革的浪潮總是一波接著一波。最近&#xff0c;模型上下文協議&#xff08;MCP&#xff09;的傳輸機制就搞出了大動靜&#xff0c;決定和傳統的服務器發送事件&#xff08;SSE&#xff09;說拜拜&#xff0c;轉身擁抱 Streamable HTTP&#xff0c;這…

138. Copy List with Random Pointer

目錄 題目描述 方法一、使用哈希表 方法二、不使用哈希表 題目描述 問題的關鍵是&#xff0c;random指針指向的是原鏈表的結點&#xff0c;這個原鏈表的結點對應哪一個新鏈表的結點呢&#xff1f;有兩種辦法。一是用哈希表。另一種是復制原鏈表的每一個結點&#xff0c;并將…

如何評估開源商城小程序源碼的基礎防護能力?

在電商行業快速發展的背景下&#xff0c;開源商城已經為更多企業或者開發者的首選方案&#xff0c;不過并不是所有的開源商城源碼都能讓人放心使用&#xff0c;今天就帶大家一起了解下如何評估開源商城小程序源碼的基礎防護能力&#xff0c;幫助大家更好地篩選安全性高的商城源…

[Vue]跨組件傳值

父子組件傳值 詳情可以看文章 跨組件傳值 Vue 的核?是單向數據流。所以在父子組件間傳值的時候&#xff0c;數據通常是通過屬性從?組件向?組件&#xff0c;??組件通過事件將數據傳遞回?組件。多層嵌套場景?般使?鏈式傳遞的?式實現provideinject的?式適?于需要跨層級…

悠易科技智能體矩陣撬動AI全域營銷新時代

大數據產業創新服務媒體 ——聚焦數據 改變商業 在數字化浪潮與AI技術的雙重驅動下&#xff0c;數據營銷正經歷前所未有的變革&#xff0c;從傳統的全域智能營銷&#xff0c;邁向更具顛覆性的AI全域營銷時代。 麥肯錫的報告顯示&#xff0c;采用AI驅動營銷的企業&#xff0c;客…

Xilinx XCAU10P-2FFVB676I 賽靈思 Artix UltraScale+ FPGA

XCAU10P-2FFVB676I 是 AMD Xilinx 推出的 Artix UltraScale? FPGA 器件&#xff0c;內部集成了約 96,250 邏輯單元&#xff0c;滿足中等規模高性能應用的需求。該芯片采用 16 nm FinFET 制程工藝&#xff0c;核心電壓典型值約 0.85 V&#xff0c;能夠在較低功耗下提供高達 775…

Java SpringBoot 項目中 Redis 存儲 Session 具體實現步驟

目錄 一、添加依賴二、配置 Redis三、配置 RedisTemplate四、創建控制器演示 Session 使用五、啟動應用并測試六、總結 Java 在 Spring Boot 項目中使用 Redis 來存儲 Session&#xff0c;能夠實現 Session 的共享和高可用&#xff0c;特別適用于分布式系統環境。以下是具體的實…

分布式電源的配電網無功優化

分布式電源(Distributed Generation, DG)的大規模接入配電網,改變了傳統單向潮流模式,導致電壓波動、功率因數降低、網損增加等問題,無功優化成為保障配電網安全、經濟、高效運行的關鍵技術。 1. 核心目標 電壓穩定性:抑制DG并網點(PCC)及敏感節點的電壓越限(如超過5%…

JS手寫代碼篇---手寫Promise

4、手寫promise Promise 是一個內置對象&#xff0c;用于處理異步操作。Promise 對象表示一個尚未完成但預期將來會完成的操作。 Promise 的基本結構 一個 Promise 對象通常有以下狀態&#xff1a; pending&#xff08;進行中&#xff09;&#xff1a;初始狀態&#xff0c;…

我喜歡的vscode幾個插件和主題

主題 Monokaione Monokai Python 語義高光支持 自定義顏色為 self 將 class , def 顏色更改為紅色 為裝飾器修復奇怪的顏色 適用于魔法功能的椂光 Python One Dark 這個主題只在python中效果最好。 我為我個人使用做了這個主題,但任何人都可以使用它。 插件 1.Pylance Pylanc…

【深度學習新浪潮】大模型時代,我們還需要學習傳統機器學習么?

在大模型時代,AI 工程師仍需掌握傳統機器學習知識,這不僅是技術互補的需求,更是應對復雜場景和職業發展的關鍵。以下從必要性和學習路徑兩方面展開分析: 一、傳統機器學習在大模型時代的必要性 技術互補性 大模型(如GPT、BERT)擅長處理復雜語義和生成任務,但在數據量少…