CSS的居中方式

水平居中

行內元素:在其父元素上設置text-align:center

. container {
    text-align: center;
}

注:此種方式.container要設置寬度才有效果

塊級元素:給其設置寬度,左右margin: auto

.container {
  width: 80%;
  margin-left: auto;
  margin-right: auto;
}

水平居中還可以使用絕對定位和flex布局的方式,具體見下面垂直居中的絕對定位和flex布局方式

垂直居中

行內元素:
1.將高度和line-height設置相同

box {
    height:30px; 
    line-height:30px;
}

2.設置上下padding相同

.box  {
    padding: 10px 0;
}

3.vertical-align實現(xiàn)定位,此種方法的原理是在容器上設置一條垂直的充滿整個高度的,沒有寬度的inline-block的線條,給這個線條設置個vertical-align,在給需要垂直居中的行內元素設置vertical-align以便和前面的線條居中對齊

.box::before {
    content: "";
    display: inline-block;
    height: 100%;
    vertical-align: middle;
}
.box img{
  vertical-align: middle;
  background: blue;
}

塊級元素:
1.絕對定位實現(xiàn)居中,給需要相對的父級以上的容器設置position:relative

.box {
    width: 400px;
    height: 300px;
    position: absoulue;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

2.使用display: table-cell讓標簽元素以表格單元格的形式呈現(xiàn),類似于td標簽。然后使用vertical-align: middle實現(xiàn)居中
注:這方式如果不給容器設置寬度,容器寬度會收縮至內容的大小

.box {
    width: 400px;
    height: 300px;
    display: table-cell;
    vertical-align: middle;
}

3.display: flex實現(xiàn)居中
①通用方法:align-items: center;設置垂直居中;justify-content: center;實現(xiàn)水平居中。

<div class="space">
  <div class="earth"></div>
</div>
.space {
  width: 100vw;
  height: 100vh;  /* 設置寬高以顯示居中效果 */
  display: flex;  /* 彈性布局 */
  align-items: center;  /* 垂直居中 */
  justify-content: center;  /* 水平居中 */    
}
.earth::after {
  content: '??';
  font-size: 85px;
}

②對于flex布局中的塊級元素可以單獨設置margin:auto;垂直水平居中(margin:auto 0;垂直居中。margin:0 auto;水平居中)

<div class="space">
  <div class="earth"></div>
</div>
.space {
  width: 100vw;
  height: 100vh;  /* 設置寬高以顯示居中效果 */
  display: flex;  /* 彈性布局 */  
}
.earth {
  width:50px;
  height:50px;
  border-radius:50px;
  background:#00ffff;
  margin:auto;
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容