CSS垂直居中精華總結
1 table-cell方式
將center元素的包含框display設定為table,center元素的display設定為table-cell,vertical-align設定為middle。
原理:利用表佈局特點,vertical-align設定為middle後,單元格中內容中間與所在行中間對齊
.container2{
display:table;
height:100%;
}
.table_cell{/*將cell垂直居中,如果外層div不為table則tablecell必須有高度*/
display:table-cell;
vertical-align:middle;
}
優點:支援任意內容的可變高度、支援響應式
缺點:每一個需要垂直居中的元素都會需要加上額外標籤(需要table、table-cell兩個額外元素,也可以不用新增多餘的無意義的標籤,修改display的block變成了table-cell,破壞了原有的塊狀元素的性質。
2 使用絕對定位垂直居中
絕對對位原理:元素在過度受限情況下,將margin設定為auto,瀏覽器會重算margin的值,過度受限指的是同時設定top/bottom與height或者left/right與width。
.absolute_center{
/*display:none;*/
position:absolute;
width:200px;
height:200px;
top:0;
bottom:0;
left:0;
right:0;
margin:auto;
background:#518fca;
resize:both;/*用於設定了所有除overflow為visible的元素*/
overflow:auto;
}
使用絕對定位要求元素必須設定明確高度。內容超過元素高度時需要設定overflow決定滾動條的出現
優點:支援響應式,只有這種方法在resize之後仍然垂直居中
缺點:沒有顯式設定overflow時,內容超過元素高度時會溢位,沒有滾動條
3 負marginTop方式
已知元素高度後,使用絕對定位將top設定為50%,mergin-top設定為內容高度的一半(height + padding) / 2;內容超過元素高度時需要設定overflow決定滾動條的出現
原理:top:50%元素上邊界位於包含框中點,設定負外邊界使得元素垂直中心與包含框中心重合;
.negative_margin_top{
position:absolute;
top:50%;
left:0;
right:0;
margin:auto;
margin-top:-100px; /*-(height+padding)/2*/
width:200px;
height:200px;
}
優點:程式碼量少、瀏覽器相容性高支援ie6 ie7
缺點:不支援響應式(不能使用百分比、min/max-width)
4 利用translate
這是最簡單的方法,不近能實現絕對居中同樣的效果,也支援聯合可變高度方式使用。內容塊定義transform: translate(-50%,-50%)必須帶上瀏覽器廠商的字首,還要加上top: 50%; left: 50%;
.is-Transformed {
width: 50%;
margin: auto;
position: absolute;
top: 50%; left: 50%;
-webkit-transform: translate(-50%,-50%);
-ms-transform: translate(-50%,-50%);
transform: translate(-50%,-50%); }
優點:
1.內容可變高度 2.程式碼量少
缺點:
1.IE8不支援
2.屬性需要寫瀏覽器廠商字首
3.可能干擾其他transform效果
4.某些情形下會出現文字或元素邊界渲染模糊的現象
5 彈性盒式佈局
利用彈性盒式佈局,將字元素的主軸、側軸的排列方式都設定為居中對齊
原理:使用CSS彈性盒
.is-Flexbox {
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-align-items: center;
align-items: center;
-webkit-justify-content: center;
justify-content: center;
}
優點:真正的垂直居中佈局
缺點:ie11才開始支援彈性佈局
相關文章
- CSS的垂直居中和水平居中總結CSS
- 轉載:CSS垂直居中總結CSS
- CSS 垂直居中CSS
- div垂直居中-CSS元素垂直居中方法CSS
- CSS垂直居中和水平居中CSS
- CSS水平居中和垂直居中CSS
- css水平垂直居中CSS
- CSS垂直水平居中CSS
- css居中總結CSS
- CSS未知高度垂直居中CSS
- CSS垂直居中方法CSS
- css中居中總結CSS
- CSS水平居中和垂直居中的方法CSS
- css垂直居中怎麼設定?文字上下居中和圖片垂直居中CSS
- 關於css 的垂直居中CSS
- css水平、垂直居中的方法CSS
- css div全屏水平垂直居中CSS
- CSS按鈕垂直水平居中CSS
- CSS視窗垂直水平居中CSS
- CSS如何將div垂直居中CSS
- 【CSS三種居中方案全解】CSS水平垂直居中常用方法集結CSS
- CSS佈局之水平居中和垂直居中CSS
- css-水平居中、垂直居中(初級篇)CSS
- css 元素左右居中總結CSS
- 垂直水平居中的方式總結 +(使用場景)
- CSS 文字li元素中垂直居中CSS
- CSS垂直居中的七個方法CSS
- CSS多行文字垂直居中效果CSS
- CSS水平垂直居中解決方案CSS
- css 水平垂直居中實現方式CSS
- CSS解決未知高度垂直居中CSS
- 5種實現垂直居中cssCSS
- CSS垂直水平完全居中手冊CSS
- 老生常談之CSS的垂直居中CSS
- CSS div水平垂直居中效果詳解CSS
- CSS實現垂直居中的問題CSS
- css讓一個容器水平垂直居中CSS
- css實現的div垂直居中效果CSS