CSS水平居中 垂直居中的N個方法 前端開發必收藏

2021-07-08 13:41:30 字數 2742 閱讀 9602

我看最近微博流行css居中技術,老外碼農爭相寫相關的文章,一篇賽一篇的長啊,我把幾篇歸納總結了一下,算是筆記。

不建議用了。

text-align:center

在父容器裡水平居中 inline 文字,或 inline 元素

vertical-align:middle

垂直居中 inline 文字,inline 元素,配合display:tabledisplay:table-cell,有奇效。

line-height

與 height 聯手,垂直居中文字

margin:auto

hello world

hacks, hacks(小技巧)

有許多 hacks ,負 margin,影子元素 ::before 等。如果你的內容不是固定大小的話,它們大部分是很脆弱的。

translate(-50%,-50%)

用 position 加 translate translate(-50%,-50%) 比較奇特,百分比計算不是以父元素為基準,而是以自己為基準。

示例:

hello world

這個技巧相當囂張,同樣適用於沒固定大小的內容,min-widthmax-heightoverflow:scroll等。

絕對定位居中

父容器元素:position: relative

.absolute-center
注意:高度必須定義,建議加overflow: auto,防止內容溢位。

視口居中

內容元素:position: fixedz-index: 999記住父容器元素position: relative

.absolute-center.is-fixed
響應式

百分比寬高,最大、最小寬度均可以,加 padding 也可以

.absolute-center.is-responsive
偏移

只要margin: auto;在,內容塊將垂直居中,top, left, bottom, right 可以設定偏移。

.absolute-center.is-right
溢位

居中內容比父容器高時,防止溢位,加overflow: auto(沒有任何 padding 時,也可以加max-height: 100%;)。

.absolute-center.is-overflow
調整尺寸

resize屬性可以讓尺寸可調。 設定min- /max-限制尺寸,確定加了overflow: auto

.absolute-center.is-resizable
影象

影象同樣適用,設定height: auto;

.absolute-center.is-image
可變高度

高度必須定義,但可以是百分比或 max-height。不想定義高度的話,用display: table(需要考慮 table-cell 相容性)。

.absolute-center.is-variable
負 margin

確切知道寬高,負 margin 是寬和高的一半。

.is-negative
table-cell

參考文章:flexible height vertical centering with css, beyond ie7

html結構:

css樣式:

.pos-container.is-table 

.is-table .table-cell

.is-table .center-block

flexbox

參考文章:designing css layouts with flexbox is as easy as pie

.pos-container.is-flexbox 

另外乙個總結

CSS水平居中 垂直居中的N個方法

不建議用了。text align center 在父容器裡水平居中 inline 文字,或 inline 元素 vertical align middle 垂直居中 inline 文字,inline 元素,配合 display table display table cell,有奇效。line he...

CSS水平居中 垂直居中的N個方法

不建議用了。text align center 在父容器裡水平居中 inline 文字,或 inline 元素 vertical align middle 垂直居中 inline 文字,inline 元素,配合display table,display table cell,有奇效。line hei...

CSS水平居中 垂直居中的N個方法

我看最近微博流行css居中技術,老外碼農爭相寫相關的文章,一篇賽一篇的長啊,我把幾篇歸納總結了一下,算是筆記。不建議用了。text align center 在父容器裡水平居中 inline 文字,或 inline 元素 vertical align middle 垂直居中 inline 文字,in...