水平居中一個元素的方法:1、對於行內元素,可用「text-align: center;」屬性實作水平居中;2、對於區塊級元素,可用「margin:0 auto」屬性實作水平居中;3、透過flex實現,設定主軸方向居中。
#(1)行內元素(文字、圖片、行內標籤(span
)、行內區塊標籤(display:inline-block
)):text-align: center
,下方以span
為例:
<p class="father"> <!-- 行内元素 --> <span class="son">hello</span> </p>
.father { width: 200px; height: 200px; border: 1px solid red; text-align: center;}
優點:相容性好,簡單
#缺點:text-align
具有繼承性,會影響後代元素
(2)區塊級元素:margin:0 auto
<!-- 相对于body居中 --><body> <!-- 块级元素 --> <p class="son"></p></body>
.son { width: 200px; height: 200px; border: 1px solid red; margin: 0 auto;}
優點:簡單,相容性好
缺點:寬度必須已知且小於父級元素
(3)flex
實現,設定主軸方向居中
<p class="father"> <span class="son"></span> </p>
.father { width: 500px; height: 100px; border: 1px solid red; display: flex; justify-content: center;}.son { width: 100px; background-color: turquoise;}
如果是多個元素可以設定為:
justify-content: space-around; /* 子元素左右两边距离均匀分布 */或justify-content: space-between; /* 最左边和最右边元素靠紧父元素,其余均匀 */
優點:方便,可以實現自適應
缺點:相容性稍微差一點,PC端IE10
以上支援
(4)絕對定位實作:子絕父相
<p class="father"> <span class="son"></span> </p>
.father { width: 500px; height: 100px; border: 1px solid red; position: relative; } .son { position: absolute; width: 100px; height: 100px; background-color: red; left: 50%; transform: translate(-50%);/* margin-left: -50% */ }
優點:優點很少,對於較難實現居中的元素可以用定位,margin-left
相容性好點
缺點:脫離文檔流,程式碼多,相容性稍微差點,IE9以上
支援transform
,而且需要知道寬度值。
推薦學習:《前端影片
###################以上是如何水平居中一個元素的詳細內容。更多資訊請關注PHP中文網其他相關文章!