CSS有哪些方式能夠實現垂直居中(方法大總結)

這裏是修真院前端小課堂,每篇分享文從css

【背景介紹】【知識剖析】【常見問題】【解決方案】【編碼實戰】【擴展思考】【更多討論】【參考文獻】前端

八個方面深度解析前端知識/技能,本篇分享的是:佈局

【CSS有哪些方式能夠實現垂直居中(方法大總結)】flex

1.背景介紹編碼

44年前咱們把人送上月球,但在CSS中咱們仍然不能很好的實現垂直居中。——@James Andersonurl

2.知識剖析spa

垂直居中就是豎向居中orm

接下來就講解在css中實現垂直居中的幾種方法:對象

一、單行文本垂直居中方法圖片

說明:

該方式只適用於狀況比較簡單的單行文本,只須要簡單地把 line-height 設置爲那個對象的 height 值就能夠使文本居中了。

二、多行文本垂直居中方法

說明:

2.1父級元素display:table-cell,vertical-align:middle;

2.2使用table來佈局;

2.3多行內容居中,且容器高度可變,也很簡單,給出一致的 padding-bottom 和 padding-top ;

三、div垂直居中:table

說明:

在table標籤中,單元格框中的單元格內容是水平垂直居中的。

display:table此元素會做爲塊級表格來顯示 相似table標籤

display:table-cell 此元素會做爲一個表格單元格顯示 相似td 和 th標籤

四、div垂直居中:inline-block

說明:

給元素設置dispaly:inline-block配合vertical-align:middle來垂直居中

五、div垂直居中:絕對定位之margin:auto

說明:

父元素相對定位,子元素絕對定位。 子元素的上下左右均設置0定位且設置margin:auto

六、div垂直居中:絕對定位之負值法

說明:

已知元素高度後,使用絕對定位將top設置爲50%,mergin-top設置爲內容高度的一半(height + padding) / 2的負值;內容超過元素高度時須要設置overflow決定滾動條的出現;top:50%元素上邊界位於包含框中點,設置負外邊界使得元素垂直中心與包含框中心重合;

 

七、div垂直居中:絕對定位之translate

說明:

CSS3的興起,使得垂直居中有了更好的解決方法,就是使用transform代替上一種方法margin. transform中translate偏移的百分比值是相對於自身大小的

八、div垂直居中:flex

說明:

給父元素設置display:flex後再設置align-items: center表示讓子元素垂直居中;

 

3.常見問題

怎樣實現背景圖片垂直居中?

4.解決方案

父元素{

background-image: url("");

background-position: center center; //或者寫成50% 50%;

background-repeat: no-repeat;

}

5.編碼實戰

6.擴展思考

使用writing-mode實現垂直居中

取值:

vertical-rl:垂直方向自右而左的書寫方式。

vertical-lr:垂直方向自左而右的書寫方式。

7.參考文獻

參考:張鑫旭博客-垂直居中

8.更多討論

還有更多實現垂直居中的方法嗎?

相關文章
相關標籤/搜索