首頁  >  文章  >  web前端  >  如何水平居中一個元素

如何水平居中一個元素

藏色散人
藏色散人原創
2020-07-02 10:55:304509瀏覽

水平居中一個元素的方法: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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn