css的實現元素垂直居中

2021-09-19 10:54:11 字數 1606 閱讀 1348

經常在寫**的時候碰到垂直居中的問題,我一般用的多的是絕對定位加負的margin或者display: table來實現居中。但是實際專案中,常常有一些特殊的情況,讓上述方法使用起來並不是那麼的靠譜。因此,更多行之有效的方法就顯得尤為重要了。

說明部分

正文開始

子div居中

這個方法使用絕對定位的div,把它的top設定為50%margin-top設定為負的div高度的一半。

#parent 

#child

這個方法使用了乙個position:absolute,有固定寬度和高度的div。這個div被設定為top:0; bottom:0。但是因為它有固定高度,其實並不能和上下都間距為 0,因此margin:auto會使它居中。

#parent 

#child

這種方法,在子div外插入乙個div。設定此divheight:50%;margin-bottom為負的子divheight。子div清除浮動,並顯示在中間。

更改上面的html為下面的:

子div居中

css為:

#parent

#floater

#child

div的顯示方式設定為**,因此我們可以使用**的vertical-align

#parent 

#child

先將元素定位到容器的中心位置,然後使用transformtranslate屬性,將元素的中心和父容器的中心重合,從而實現垂直居中

#parent 

#child

使用 transform 有乙個缺陷,就是當計算結果含有小數時(比如 0.5),會讓整個元素看起來是模糊的,一種解決方案就是為父級元素設定transform-style: preserve-3d;樣式:

#parent

#child

使用 flexbox 實現水平和垂直居中,只需使用兩條居中屬性即可

#parent

#child

前端初學者用作整理知識之用,錯誤之處請指正

CSS實現元素垂直居中

對元素的垂直居中針對於單行元素和多行元素將分情況討論。父元素高度確定的單行文字的豎直居中的方法是通過設定父元素的 height 和 line height 高度一致來實現的。html結構 hello world css樣式 對於父元素高度不確定的文字 等的塊級元素的豎直居中可以設定相同的上下內邊距 ...

css實現元素水平垂直居中

利用負邊距實現子元素居中 相對于父元素 position relative 需已知子元素的width與height 且把子元素的position設為absolute,絕對定位 以及設定left和top為50 再加上負邊距,margin left值為width的一半,同樣的,margin top值為h...

css實現元素垂直水平居中

css實現垂直居中的方法 方法一 父元素display flex 子元素margin auto auto fa son 方法二 父元素display flex 並設定justify content center align items center fa son 方法三 在不改變父元素的前提下,只修...