CSS常用的兩種定位方式

在CSS中,absoluterelative 是兩種常用的定位方式,分別通過 position 屬性進行設置。它們用于控制元素在頁面中的位置。理解這兩種定位方式對于布局和設計響應式頁面非常重要。

position: relative

定義

relative 定位是相對自身原始位置進行偏移。

特性
  • 元素仍然占據其在正常文檔流中的空間,但可以通過 top, right, bottom, left 屬性進行偏移。
  • 偏移量是相對于元素本來的位置進行的。
  • 不會影響其他元素的布局,因為它仍然保留在文檔流中。
示例
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Relative Position Example</title><style>.relative-box {position: relative;top: 20px; /* 相對于其原始位置向下偏移20像素 */left: 30px; /* 相對于其原始位置向右偏移30像素 */width: 100px;height: 100px;background-color: lightblue;}</style>
</head>
<body><div class="relative-box">Relative Box</div>
</body>
</html>

position: absolute

定義

absolute 定位是相對于最近的已定位(relative, absolute, fixed, sticky)祖先元素進行偏移。如果沒有已定位的祖先元素,則相對于初始包含塊(通常是視口)進行定位。

特性
  • 元素脫離正常文檔流,不再占據空間,其他元素會忽略它的位置。
  • 通過 top, right, bottom, left 屬性進行偏移,相對于最近的已定位祖先元素。
  • 如果沒有找到已定位的祖先元素,則相對于視口進行定位。
示例
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Absolute Position Example</title><style>.container {position: relative;width: 200px;height: 200px;background-color: lightgray;}.absolute-box {position: absolute;top: 20px; /* 相對于最近的已定位祖先元素向下偏移20像素 */left: 30px; /* 相對于最近的已定位祖先元素向右偏移30像素 */width: 100px;height: 100px;background-color: lightblue;}</style>
</head>
<body><div class="container"><div class="absolute-box">Absolute Box</div></div>
</body>
</html>

比較與總結

  • position: relative

    • 相對自身原始位置進行偏移。
    • 元素仍占據原始位置的空間。
    • 用于微調元素位置,不會影響其他元素的布局。
  • position: absolute

    • 脫離文檔流,相對于最近的已定位祖先元素進行定位。
    • 不占據空間,其他元素會忽略它的位置。
    • 用于精確定位元素,通常與 relative 定位的祖先元素配合使用。

結合使用

relativeabsolute 定位經常結合使用,以實現復雜的布局效果。典型的用法是將容器元素設置為 relative 定位,而內部的子元素設置為 absolute 定位,這樣子元素可以相對于容器元素進行定位。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Combined Position Example</title><style>.relative-container {position: relative;width: 300px;height: 300px;background-color: lightgray;}.absolute-child {position: absolute;top: 50px;left: 50px;width: 100px;height: 100px;background-color: lightblue;}</style>
</head>
<body><div class="relative-container"><div class="absolute-child">Child</div></div>
</body>
</html>

在這個例子中,.absolute-child 會相對于 .relative-container 的位置進行偏移,從而實現精確定位。

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

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

相關文章

Python 魂斗羅的音效和動漫效果

一、實現游戲音效 音效是游戲中不可或缺的一部分&#xff0c;它可以為游戲增添氛圍和趣味性。在 Pygame 中&#xff0c;我們可以使用 pygame.mixer 模塊來播放音效。下面是一個簡單的示例代碼&#xff0c;演示如何在游戲中播放音效&#xff1a; import pygamepygame.mixer.init…

windows平臺vcpkg安裝

1. 克隆vcpkg倉庫 git clone https://github.com/microsoft/vcpkg 2.運行bootstrap-vcpkg.bat下載vcpkg.exe 3.運行驗證 4.使用VCPKG安裝OPENSSL 5.安裝成功

VC++學習(1)——環境準備,參考文檔等,初步入門VC++

目錄 引出環境準備&#xff0c;參考文檔第一講 初步入門鍵盤按下的消息鼠標左鍵按下報錯源碼新建一個工程 總結 引出 VC學習&#xff08;1&#xff09;——環境準備&#xff0c;參考文檔等&#xff0c;初步入門VC C是一門編程語言,他的語法標準和語言特性是全球統一的 VC是微…

計算機系統概述習題

選擇題 電子計算機問世至今&#xff0c;新型計算機不斷推陳出新&#xff0c;不管怎么更新&#xff0c;依然具有“存儲程序”的特點&#xff0c;最早提出這種概念的是(B) A. 巴貝奇 B. 馮*諾伊曼 C. 帕斯卡 D. 貝爾 B下列描述中___是正確的。 A. 控制器能理解&#xff0c;解釋…

中國主要城市房價指數數據集(2011-2024)

數據來源&#xff1a;東方財富網 時間跨度&#xff1a;2011年1月 - 2024年4月 數據范圍&#xff1a;中國主要城市 包含指標&#xff1a; 日期、城市 新建商品住宅價格指數-同比 新建商品住宅價格指數-環比 新建商品住宅價格指數-定基 二手住宅價格指數-環比 二手住宅價格指…

Visual Studio 調試及快捷鍵

文章目錄 原文連接環境一、調試器的基本使用1、更改執行流2、快速執行某一條代碼斷點設置條件斷點查看內存信息查看調用堆棧查看寄存器信息設置監視斷點調試二、快捷鍵一、窗口快捷鍵二、查找相關快捷鍵三、代碼快捷鍵原文連接 【教程】visual studio debug 技巧總結 環境 一…

OpenCASCADE Draw模塊TKDraw項目問題修改

1.問題 在調試Draw模塊代碼時&#xff0c;出現一個小問題&#xff0c;導致無法正常運行 如下&#xff1a; 2.代碼跟蹤 通過代碼跟蹤發現時一個數組越界問題&#xff0c;在此處添加了判斷處理&#xff0c;程序可以正常調試

Golang使用HTTP框架zdpgo_resty實現文件下載

核心代碼 代碼解析&#xff1a; client.SetOutputDirectory("Downloads") 設置下載目錄client.R().SetOutput("test.go").Get("http://127.0.0.1:3333/download 指定下載文件名并進行下載 // 設置輸出目錄路徑&#xff0c;如果目錄不存在&#xff…

數據結構順序表實現通訊錄

目錄 1. 前言&#xff1a; 2.通訊錄項目的創建 3. 通訊錄的實現 3.1 通訊錄的初始化 3.2 通訊錄的銷毀 3.3 通訊錄添加數據 3.4 通訊錄查找數據 3.5 通訊錄展示數據 3.6 通訊錄刪除數據 3.7 通訊錄修改數據 4. 通訊錄完整代碼 4.1 test.c 4.2 SeqList.h 4.3 SeqLis…

PostgreSQL學習筆記

PostgreSQL 基本概念和架構 PostgreSQL 是一個功能強大的開源對象關系數據庫管理系統&#xff08;ORDBMS&#xff09;&#xff0c;其設計目標是遵循 SQL 標準&#xff0c;并提供豐富的功能&#xff0c;如復雜查詢、外鍵、觸發器、視圖和事務處理。以下是 PostgreSQL 的基本概念…

數據結構(Java實現):ArrayList

目錄 1.ArrayList簡介2.ArrayList構造方法分析3.ArrayList的add方法以及擴容機制4.ArrayList常用方法5.ArrayList遍歷6.ArrayList的缺陷 1.ArrayList簡介 在集合框架中&#xff0c;ArrayList是一個普通的類&#xff0c;實現了List接口&#xff0c;具體框架圖如下&#xff1a; …

編寫一個llvm編譯器插件,完成在store匯編指令前對內存合法性的check。

dds(iceoryx、fastdds等)中間件采用了共享內存&#xff0c;如果app內存越界將共享內存踩踏壞了&#xff0c;將會形成災難。本插件可以檢測到app是否在寫共享內存&#xff0c;如果是&#xff0c;我們可以讓app assert。從而提高dds的穩定性 插件效果&#xff1a; 插件源碼&…

話題:如何讓大模型變得更聰明?

隨著人工智能&#xff08;AI&#xff09;技術的迅速發展&#xff0c;大模型&#xff08;如GPT-4、BERT、Transformer等&#xff09;在自然語言處理、圖像識別和語音識別等領域取得了顯著成果。然而&#xff0c;如何讓大模型變得更聰明&#xff0c;進一步提升其性能和應用效果&a…

Netty: Netty中的組件

文章目錄 一、EventLoop1、EventLoop2、EventLoopGroup&#xff08;1&#xff09;處理普通時間和定時任務&#xff08;2&#xff09;處理IO任務 二、Channel三、Future&Promise四、Handler&Pipeline五、ByteBuf 一、EventLoop 1、EventLoop EventLoop本質是一個單線程…

Jetbrain | IDEA的啟動logo替換成可愛的vtuber-logo

看了這個&#xff0c;好可愛 【上Github熱榜了&#xff01;當編程語言的Logo變得可愛起來~】 又看了這個 光速整活&#xff0c;強啊 看到很多人整IDEA的logo包括我自己&#xff0c;都不是特別方便的搞&#xff0c;我就直接把文件放在綁定資源里直接下吧 然后直接找到本體的安…

ios swift5 codable字典轉模型,第三方庫SmartCodable

文章目錄 1.用第三方庫SmartCodable, github地址2.使用示例 1.用第三方庫SmartCodable, github地址 SmartCodable - github 2.使用示例 import Foundation import SmartCodablestruct CommonModel: SmartCodable {var message: String ""var success: Bool fals…

【深度學習】與【PyTorch實戰】

目錄 一、深度學習基礎 1.1 神經網絡簡介 1.2 激活函數 1.3 損失函數 1.4 優化算法 二、PyTorch基礎 2.1 PyTorch簡介 2.2 張量操作 2.3 構建神經網絡 2.4訓練模型 2.5 模型評估 三、PyTorch實戰 3.1 數據加載與預處理 3.2 模型定義與訓練 3.3 模型評估與調優 3…

成都青年AI人才嶄露頭角,知了匯智科技助力孵化營大放異彩

5月18日-19日&#xff0c;為期兩天的成都國際商貿城青年&#xff08;大學生&#xff09;AI應用孵化營活動在熱烈的氛圍中圓滿落幕。本次活動由成都國際商貿城、成都成商數字科技有限公司、成都知了匯智科技有限公司及成都電商職教集團聯合舉辦&#xff0c;旨在為青年&#xff0…

丟失api-ms-win-crt-runtime-l1-1-0.dll的多種解決方法分析,教你簡單的一鍵修復

在使用Windows操作系統時&#xff0c;用戶可能會遇到一個涉及丟失 ?api-ms-win-crt-runtime-l1-1-0.dll文件的警告&#xff0c;這可能導致某些程序無法正常運行。該DLL文件屬于Microsoft Visual C Redistributable軟件包的一部分&#xff0c;這個軟件包為多個應用提供運行時支…

Mybatis-plus的兩種分頁方案

Mybatis-plus的兩種分頁方案 底層的邏輯是寫出最終執行的sql或者selectPage方法等&#xff0c;中間需要配置相應的page攔截器。 注意&#xff1a;如沒有配置攔截器&#xff0c;直接執行就會存在total的值為0&#xff0c;此方法無效。 1. 基于MP的IPage接口實現 使用步驟&am…