水平居中是經常遇到的問題。看似方法較多,條條大路通羅馬。但係統梳理下,其實都圍繞著幾個思路展開。本文將介紹關於水平居中的4種思路,有興趣的朋友參考下吧
前面的話
水平居中是經常遇到的問題。看似方法較多,條條大路通羅馬。但係統梳理下,其實都圍繞著幾個思路展開。本文將介紹水平居中的4種思路,有興趣的朋友參考下吧!
想法一:在父元素中設定text-align:center實作行內元素水平居中
將子元素的display設定為inline-block,使子元素變成行內元素
[注意]若要相容IE7-瀏覽器,可使用display:inline;zoom:1;來達到inline-block的效果
<style> .parent{text-align: center;} .child{display: inline-block;} </style> <p class="parent" style="background-color: gray;"> <p class="child" style="background-color: lightblue;">DEMO</p> </p>
想法二:在本身元素設定 margin: 0 auto實現區塊級元素水平居中
#
【1】將子元素的display為table,使子元素成為區塊級元素,同時table還具有包裹性,寬度由內容撐開
[注意]若要相容IE7-瀏覽器,可把child的結構換成
<style> .child{ display: table; margin: 0 auto; } </style> <p class="parent" style="background-color: gray;"> <p class="child" style="background-color: lightblue;">DEMO</p> </p>
【2】若子元素定寬,則可以使用絕對定位的盒子模型屬性,實現居中效果;若不設定寬度時,子元素被拉伸
<style> .parent{ position: relative; } .child{ position: absolute; left: 0; rightright: 0; margin: 0 auto; width: 50px; } </style> <p class="parent" style="background-color: gray;height: 20px;"> <p class="child" style="background-color: lightblue;">DEMO</p> </p>
#思路三: 透過絕對定位的偏移屬性實現水平居中
【1】配合translate()位移函數
translate函數的百分比是相對於自身寬度的,所以left:50%配合translateX(-50%)可實現居中效果
[注意]IE9-瀏覽器不支援
<style> .parent{ position: relative; } .child{ position: absolute; left: 50%; transform:translateX(-50%); } </style> <p class="parent" style="background-color: gray;height: 20px;"> <p class="child" style="background-color: lightblue;">DEMO</p> </p>
【2】配合relative
relative的偏移屬性是相對於自身的,因為子元素已經被設定為absolute,所以若使用relative,則需要增加一層
[注意]此方法全相容,但是增加了html結構
<style> .parent{ position: relative; } .childWrap{ position: absolute; left: 50%; } .child{ position: relative; left: -50%; } </style> <p class="parent" style="background-color: gray;height: 20px;"> <p class="childWrap"> <p class="child" style="background-color: lightblue;">DEMO</p> </p> </p>
# 3】配合負margin
margin的百分比是相對於包含區塊的,所以需要增加一層
結構。由於寬度width的預設值是auto,當設定負margin時,width也會隨著變大。所以此時需要定寬處理
[注意]雖然全相容,但需要增加頁面結構及定寬處理,所以限制了應用場景
<style> .parent{ position: relative; } .childWrap{ position: absolute; left: 50%; } .child{ width:50px; margin-left:-50%; } </style> <p class="parent" style="background-color: gray;height: 20px;"> <p class="childWrap"> <p class="child" style="background-color: lightblue;">DEMO</p> </p> </p>
#思路四: 使用彈性盒模型flex實現水平居中
[注意]IE9-瀏覽器不支援
#【1】在伸縮容器上設定主軸對齊方式jusify-content:center
<style> .parent{ display: flex; justify-content: center; } </style> <p class="parent" style="background-color: gray;"> <p class="child" style="background-color: lightblue;">DEMO</p> </p>
#【2】在伸縮項目上設定margin: 0 auto
<style> .parent{display: flex;} .child{margin: 0 auto;} </style> <p class="parent" style="background-color: gray;"> <p class="child" style="background-color: lightblue;">DEMO</p> </p>
以上是利用CSS實現水平居中的4種思路簡要概述的詳細內容。更多資訊請關注PHP中文網其他相關文章!

前幾天我得到了這個問題。我的第一個想法是:奇怪的問題!特異性是關於選擇者的,而在符號不是選擇器,那麼...無關緊要?

在這篇文章中,我們將使用我構建和部署的電子商務商店演示來進行Netlify,以展示如何為傳入數據製作動態路線。這是一個公平的


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3漢化版
中文版,非常好用

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具