css中居中總結

漂亮得皮皮發表於2018-09-12
真實以本篇為準,有遺漏,歡迎補充
1、水平居中
1.1、行內元素的水平居中(span、文字、圖片、input)
父級 {
text-align: center;
}

1.2、塊級元素水平居中:分情況
>> 有寬度的塊級元素
本身 {
margin: 0 auto;
}

本身 { //推薦
margin-left: auto;
margin-right: auto;
}

>> 寬度不固定的元素:
方法一:定位法

父級{position: relative;}子級{position: absolute;left: 50%;transform:translateX(-50%);}複製程式碼

方法2: 通過給父元素設定 float,然後給父元素設定 position:relative 和 left:50%,子元素設定 position:relative 和 left: -50% 來實現水平居中。

.wrap{float:left;position:relative;left:50%;clear:both;}.wrap-center{position: relative;left:-50%;}}複製程式碼

   方法3:flex法

父級{display: flex;flex-direction: row;//設定主軸justify-content: center;//主軸方向居中}複製程式碼
2、垂直居中

2.1、行內元素(span、img、文字)垂直居中:

父級 {height : 100px;line-height: 100px;}複製程式碼


2.2、塊級元素:表格佈局法

父級 {display: table-cell;vertical-align: middle;}複製程式碼


3、水平垂直居中:
3.1:必須有寬度:定位法:上下左右為0,margin:auto

本身 {position: absolute;top: 0;left: 0;bottom: 0;right: 0;margin: auto;width: 200px;height: 200px;background: red;}複製程式碼


3.2 有寬度的塊級元素:定位+回移50%法

.center {position: absolute;top: 50%;left: 50%;margin-top: -100px;margin-left: -100px;width: 200px;height: 200px;background: red;} 
複製程式碼


3.3 flex法:讓元素在父級框裡是水平垂直居中的

.fa{display:flex;flex-direction: row;//確定主軸align-items: center;//交叉軸居中justify-content: center;//主軸居中border: 1px solid greenyellow;}複製程式碼


3.4 grid方式

 .parent { 
height: 140px; 
display: grid; 
} 

.child { 
margin: auto; 
}
複製程式碼