CSS【詳解】居中對齊 (水平居中 vs 垂直居中)

水平居中

內部塊級元素的寬度要小于容器(父元素)

方案一:文本居中對齊(內聯元素)

限制條件:僅用于內聯元素 display:inline 和 display: inline-block;

給容器添加樣式

text-align:center

在這里插入圖片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>.box {margin: 30px 30px 0px 300px;border: 1px solid gray;text-align: center;}.item {display: inline-block;width: 400px;background: yellow;}</style></head><body><div class="box"><span>水平居中 -- display: inline</span></div><div class="box"><div class="item">水平居中 -- display: inline-block</div></div></body>
</html>

方案二:自動外邊距(塊級元素)

限制條件:僅用于塊級元素 display:block;

給內部元素添加樣式

margin: auto

在這里插入圖片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>.box {margin: 30px;border: 1px solid gray;}.item {margin: auto;width: 300px;background: yellow;}</style></head><body><div class="box"><div class="item">水平居中 -- 塊級元素 display:block</div></div></body>
</html>

方案三:flex布局【推薦】

給容器添加樣式

display: flex;
justify-content: center;

在這里插入圖片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>.box {margin: 30px 30px 0px 300px;border: 1px solid gray;display: flex;justify-content: center;}.item {width: 400px;background: yellow;}</style></head><body><div class="box"><span>水平居中 -- flex布局 display: inline</span></div><div class="box"><div class="item">水平居中 -- flex布局 display: block</div></div></body>
</html>

方案四:子絕父相 + transform (CSS3)

限制條件:瀏覽器需支持CSS3,比較老的瀏覽器不適用
給容器(父元素)添加樣式

position: relative

給內部元素添加樣式

position: absolute;
left: 50%;
transform: translate(-50%, 0);

在這里插入圖片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>.box {margin: 30px 30px 0px 300px;border: 1px solid gray;height: 50px;position: relative;}.item {background-color: yellow;position: absolute;left: 50%;transform: translate(-50%, 0);}</style></head><body><div class="box"><span class="item">水平居中 -- 子絕父相 + transform</span></div></body>
</html>

方案五:子絕父相 + 自動外邊距 (指定寬度)

限制條件:內部元素需限定寬度

給容器(父元素)添加樣式

position: relative

給內部元素添加樣式

position: absolute;
left: 0;
right: 0;
margin: auto;

在這里插入圖片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>.box {margin: 30px 30px 0px 300px;border: 1px solid gray;height: 50px;position: relative;}.item {background-color: yellow;position: absolute;left: 0;right: 0;margin: auto;width: 300px;}</style></head><body><div class="box"><span class="item">水平居中 -- 子絕父相 + 自動外邊距</span></div></body>
</html>

方案六:子絕父相 + 負外邊距 (知道寬度 + 寬度計算)

限制條件:需知道內部元素的寬度(無法預知寬度的內聯元素和未知寬度的塊級元素都不適用)

給容器(父元素)添加樣式

position: relative

給內部元素添加樣式

position: absolute;
left:50%;
margin-left:-內部元素寬度的一半
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>.box {margin: 30px;border: 1px solid gray;height: 100px;position: relative;}.item {width: 400px;background: yellow;position: absolute;left: 50%;margin-left: -200px;}</style></head><body><div class="box"><div class="item">水平居中 -- 絕對定位元素 position:absolute</div></div></body>
</html>

垂直居中

內部塊級元素的高度要小于容器(父元素)

方案一:行高 = 容器高度(單行內聯元素)

限制條件:僅用于單行內聯元素 display:inline 和 display: inline-block;

給容器添加樣式

 height: 100px;line-height: 100px;

在這里插入圖片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>.box {margin: 30px;border: 1px solid gray;height: 100px;line-height: 100px;}</style></head><body><div class="box"><span class="item">垂直居中 -- 內聯元素 display:inline</span></div></body>
</html>

方案二:flex布局【推薦】

給容器添加樣式

display: flex;
align-items: center;

方案三:子絕父相 + transform(CSS3)

限制條件:瀏覽器需支持CSS3,比較老的瀏覽器不適用
給容器(父元素)添加樣式

position: relative

給內部元素添加樣式

position: absolute;
top: 50%;
transform: translate(0, -50%);

在這里插入圖片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>.box {margin: 30px;border: 1px solid gray;height: 100px;position: relative;}.item {position: absolute;top: 50%;transform: translate(0, -50%);background-color: yellow;}</style></head><body><div class="box"><div class="item">垂直居中 -- 子絕父相 transform</div></div></body>
</html>

方案四:子絕父相 + 自動外邊距(指定高度)

限制條件:內部元素需限定高度

給容器(父元素)添加樣式

position: relative

給內部元素添加樣式

position: absolute;
top: 0;
bottom: 0;
margin: auto;
  • 內聯元素也有效,因為內聯元素絕對定位后,display 會變為 block

在這里插入圖片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>.box {margin: 30px;border: 1px solid gray;height: 100px;position: relative;}.item {position: absolute;top: 0;bottom: 0;margin: auto;background-color: yellow;height: 50px;}</style></head><body><div class="box"><span class="item">垂直居中 -- 子絕父相 + 自動外邊距</span></div></body>
</html>

方案五:子絕父相 + 負外邊距 (知道高度 + 高度計算)

限制條件:需知道內部元素的高度

給容器(父元素)添加樣式

position: relative

給內部元素添加樣式

position: absolute;
top: 50%;
margin-top: -內部元素高度的一半;

在這里插入圖片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>.box {margin: 30px;border: 1px solid gray;height: 100px;position: relative;}.item {position: absolute;top: 50%;margin-top: -25px;height: 50px;background-color: yellow;}</style></head><body><div class="box"><span class="item">垂直居中 -- 子絕父相 + 負外邊距</span></div></body>
</html>

水平垂直居中

參考上文分別實現水平居中和垂直居中即可,常用方案如下:

方案一:flex布局【推薦】

給容器添加樣式

display: flex;
justify-content: center;
align-items: center;

方案二:子絕父相 + transform (CSS3)

限制條件:瀏覽器需支持CSS3,比較老的瀏覽器不適用
給容器(父元素)添加樣式

position: relative

給內部元素添加樣式

position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);

方案三:子絕父相 + 自動外邊距(指定高度和寬度)

給容器(父元素)添加樣式

position: relative

給內部元素添加樣式

position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;

方案四:子絕父相 + 負外邊距 (知道寬度和高度 + 寬度和高度計算)

限制條件:需知道內部元素的寬度和高度
給容器(父元素)添加樣式

position: relative

給內部元素添加樣式

position: absolute;
left:50%;
margin-left:-內部元素寬度的一半;
top: 50%;
margin-top: -內部元素高度的一半;

在這里插入圖片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>.box {margin: 30px 30px 0px 300px;border: 1px solid gray;height: 100px;position: relative;}.item {background-color: yellow;position: absolute;left: 50%;margin-left: -150px;top: 50%;margin-top: -25px;width: 300px;height: 50px;}</style></head><body><div class="box"><span class="item">水平垂直居中 -- 子絕父相 + 負外邊距</span></div></body>
</html>

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

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

相關文章

裴蜀定理(Bézout’s identity)

裴蜀定理&#xff08;Bzout’s identity&#xff09;是一個數論定理&#xff0c;也稱為貝祖等式。它表明&#xff0c;對于任意給定的兩個整數 a a a 和 b b b&#xff0c;存在整數 x x x 和 y y y&#xff0c;使得它們滿足以下方程&#xff1a; a x b y gcd ? ( a , b )…

【簡略知識】項目開發中,VO,BO,PO,DO,DTO究竟是何方妖怪?

前言 在項目開發中&#xff0c;是否需要定義VO&#xff08;視圖對象&#xff09;&#xff0c;BO&#xff08;業務對象&#xff09;&#xff0c;PO&#xff08;持久化對象&#xff09;&#xff0c;DO&#xff08;領域對象&#xff09;&#xff0c;DTO&#xff08;數據傳輸對象&…

CKKS EXPLAINED, PART 3: ENCRYPTION AND DECRYPTION

CKKS EXPLAINED, PART 3: ENCRYPTION AND DECRYPTION Introduction 在之前的文章中&#xff0c;CKKS解釋了第二部分&#xff1a;完整的編碼和解碼&#xff0c;我們看到了如何實現CKKS的編碼器和解碼器&#xff0c;這使我們能夠將向量轉換為多項式&#xff0c;反之亦然。這一步…

笨辦法學 Python3 第五版(預覽)(三)

原文&#xff1a;Learn Python the Hard Way, 5th Edition (Early Release) 譯者&#xff1a;飛龍 協議&#xff1a;CC BY-NC-SA 4.0 練習 30&#xff1a;假如 這是你將要輸入的下一個 Python 腳本&#xff0c;它向你介紹了if語句。輸入這個代碼&#xff0c;確保它能夠完美運行…

怎么快速編輯視頻

背景&#xff1a;怎么簡單快速編輯視頻 利用FFmpeg功能&#xff0c;簡單快速編輯視頻&#xff0c;如按9:16提前剪切視頻、替換背景音樂。 下載FFmpeg&#xff1a;https://ffmpeg.org/download.html 將FFmpeg的路徑添加到環境變量中&#xff1a; Windows&#xff1a;在系統的環…

Home-credit海外貸款信貸產品源碼/線上貸款產品大全/貸款平臺軟件源碼/海外借貸平臺

測試環境&#xff1a;Linux系統CentOS7.6、寶塔、PHP7.3、MySQL5.6&#xff0c;根目錄public&#xff0c;偽靜態laravel5&#xff0c;開啟ssl證書 語言&#xff1a;中文簡體、英文 laravel框架的程序有點多&#xff0c;這個團隊估計主要就是搞laravel開發的&#xff0c;基本上…

前端架構: 腳手架通用框架封裝之腳手架注冊和命令注冊開發(教程二)

腳手架注冊和命令注冊 1 &#xff09;腳手架的注冊 接上文&#xff0c;仍舊在 abc-cli 項目中參考&#xff1a;https://blog.csdn.net/Tyro_java/article/details/136381086之前初始化的時候&#xff0c;使用的是 yargs, 現在我們想要使用 commander在cli包中安裝 commander $…

2024 最新版 Compose material3 下拉刷新

2024 最新版 Compose material3 下拉刷新&#xff0c;版本 > 1.2.0 的 compose material3 已經更新了下拉刷新組件的 Api 見 https://developer.android.com/jetpack/androidx/releases/compose-material3?hlzh-cn#1.2.0 使用方法&#xff1a;https://developer.android.…

YOLOv9獨家原創改進|增加SPD-Conv無卷積步長或池化:用于低分辨率圖像和小物體的新 CNN 模塊

專欄介紹&#xff1a;YOLOv9改進系列 | 包含深度學習最新創新&#xff0c;主力高效漲點&#xff01;&#xff01;&#xff01; 一、文章摘要 卷積神經網絡(CNNs)在計算即使覺任務中如圖像分類和目標檢測等取得了顯著的成功。然而&#xff0c;當圖像分辨率較低或物體較小時&…

可以用來測試的接口

實際開發過程中&#xff0c;我們可以通過postman工具來測試接口 get請求 https://api.github.com/events?id1&nameuser post請求 http://httpbin.org/post 參數1&#xff1a;key1value1 參數2&#xff1a;key2value2

(C語言)回調函數

回調函數是什么&#xff1f; 回調函數就是?個通過函數指針調?的函數。 如果你把函數的指針&#xff08;地址&#xff09;作為參數傳遞給另?個函數&#xff0c;當這個指針被?來調?其所指向的函數 時&#xff0c;被調?的函數就是回調函數。回調函數不是由該函數的實現?…

技術閱讀周刊第十四期:常用的 Git 配置

技術閱讀周刊&#xff0c;每周更新。 歷史更新 20231122&#xff1a;第十一期20231129&#xff1a;第十二期20240105&#xff1a;第十三期&#xff1a;一些提高生產力的終端命令20240112&#xff1a;第十四期&#xff1a;Golang 作者 Rob Pike 在 GopherConAU 上的分享 How I w…

探索Manticore Search:開源全文搜索引擎的強大功能

在當今信息爆炸的時代&#xff0c;數據的快速檢索變得至關重要。無論是在電子商務網站、新聞門戶還是企業內部文檔&#xff0c;高效的搜索引擎都是確保用戶滿意度和工作效率的關鍵因素之一。而在搜索引擎領域&#xff0c;Manticore Search 作為一款開源的全文搜索引擎&#xff…

大模型(LLM)的量化技術Quantization原理學習

在自然語言處理領域&#xff0c;大型語言模型&#xff08;LLM&#xff09;在自然語言處理領域的應用越來越廣泛。然而&#xff0c;隨著模型規模的增大&#xff0c;計算和存儲資源的需求也急劇增加。為了降低計算和存儲開銷&#xff0c;同時保持模型的性能&#xff0c;LLM大模型…

2024最新算法:鸚鵡優化算法(Parrot optimizer,PO)求解23個基準函數(提供MATLAB代碼)

一、鸚鵡優化算法 鸚鵡優化算法&#xff08;Parrot optimizer&#xff0c;PO&#xff09;由Junbo Lian等人于2024年提出的一種高效的元啟發式算法&#xff0c;該算法從馴養的鸚鵡中觀察到的覓食、停留、交流和對陌生人行為的恐懼中汲取靈感。這些行為被封裝在四個不同的公式中…

c語言--qsort函數(詳解)

目錄 一、定義二、用qsort函數排序整型數據三、用qsort排序結構數據四、qsort函數的模擬實現 一、定義 二、用qsort函數排序整型數據 #include<stdio.h> scanf_S(int *arr,int sz) {for (int i 0; i < sz; i){scanf("%d", &arr[i]);} } int int_cmp(c…

消息隊列kafka

消息隊列解決的問題 1. 解耦&#xff0c;通過消息隊列實現應用之間解耦&#xff0c;模塊兒之間解耦 2. 跨線程/進程通信&#xff0c;通過消息隊列傳遞數據&#xff0c;實現不同線程/進程間通信 3. 提升系統穩定性&#xff0c;在高并發場景通過消息隊列緩沖&#xff0c;可以實…

哈啰Java 春招 24屆

時長 1h 3. 為什么使用分布式ID&#xff0c;解決了什么問題 4. Leaf算法了解嗎&#xff1f;講一下原理和工作流程以及優缺點 5. 有沒有可能導致id重復&#xff1f;該如何解決&#xff1f; 6. 項目中redis是如何運用的&#xff1f; 7. 項目中分布式鎖是如何實現的&#xff1f; 8…

解決在 Mac 上安裝 Adobe 軟件彈出提示:安裝包已經被損壞并且不能被打開。

問題&#xff1a; “INSTALLER” is damaged and can’t be opened. You should eject the disk image. 解決方法和步驟&#xff1a; 打開安裝包&#xff1b;將安裝包 “INSTALLER” 拖動復制到某個文件夾&#xff0c;復制后的文件路徑例如像這樣&#xff1a;/Users/michael…

LLC諧振變換器變頻移相混合控制MATLAB仿真

微?關注“電氣仔推送”獲得資料&#xff08;專享優惠&#xff09; 基本控制原理 為了實現變換器較小的電壓增益&#xff0c;同時又有較 高的效率&#xff0c;文中在變頻控制的基礎上加入移相控制&#xff0c; 在這種控制策略下&#xff0c;變換器通過調節一次側開關管 的開關…