一些實現垂直居中的方法

2021-09-13 17:25:49 字數 1116 閱讀 2088

垂直居中在專案中有廣泛應用,而且在各個公司面試中貌似被問到的情況也比較多,這裡總結了一些常用的方法以及一些比較怪異的方法,僅供參考。

先設定下基礎樣式

section 

.block

flexbox是我現在最常用的布局方法,可以設定justify-contentalign-items輕鬆實現水平以及垂直居中,而且不用在意父元素和子元素的高度。

設定display: table-cell,相當於是**的td,單元格所包含的內聯元素可以實現垂直居中。

子元素相對于父元素絕對定位,再將子元素位置適當調整,兩種調整方式:

line-height可以改變行高,可以使內聯元素居中,需要已知父元素的高度

基本思路是子元素相對父級絕對定位,根據父元素寬高和自身大小改變left和top值。

這裡可以使用calc()方法,但需要已知子元素寬高。

如果子元素大小不確定,可以使用js來改變位置。

這個不多說了

下面的實現方法,相對來說不那麼常規

這種方法需要多加乙個內聯元素,讓它的高度和父級元素的高度一致,再通過vertical-align: middle來實現。

本質上是改變了元素的大小,因為transform-origin預設在50% 50%,所以看起來就是居中的效果了

這個有點皮

所有實現了水平居中的,可以讓父元素旋轉90度,子元素再反方向旋轉回來

其他想到再補充

元素水平垂直居中的一些方法

1 需要水平垂直居中的元素的父級設定 position relative 再給該元素設定 position absolute top 0 right 0 left 0 bottom 0 margin auto overflow auto 不需要給該元素設定寬高 注意 高度必須定義,建議加overfl...

文字垂直居中實現方法

大家都知道css中使文字等元素水平居中的最常用的方法就是設定父盒子text align center 子盒子margin 0 auto 即可 而目前垂直居中沒有看到說明最常用的做法,現在我們給出實現元素垂直居中的幾個方法 方法一 line height 這應該是我目前知道實現垂直居中最簡單實用的方法...

實現水平居中和垂直居中的方法

一 水平居中 1.text align center 行內元素 給其父元素設定屬性 text align center 2.margin 0 auto 塊級元素 給元素本身設定 margin 0 auto 3.元素的寬度固定 ele 4.元素的寬度不固定 ele 二 垂直居中 1.line heig...