垂直和水平居中方法小結

2021-07-07 11:10:55 字數 2922 閱讀 3863

text-align:center;

1.定寬塊元素水平居中

margin

:0 auto;

2.不定寬塊元素水平居中

方法一:利用浮動的包裹性和百分比相對定位

class=『outer『>

class=『inner『>

div>

div>

我們想要使inner(不定寬)水平居中於outer,可以這麼做:

先在inner外面再加一層div:

class=『outer『>

class=『wrap『>

class=『inner『>

div>

div>

div>

起初盒子是這樣的:

css這麼寫:

.wrap

.inner

wrap設定為float的原因是形成包裹,把inner包裹住,此時浮動元素wrap的寬和高都是有內部元素inner撐開的,不再是佔滿整行。也就是說wrap的寬和inner的寬相等。

position:relative設定百分比意思是相對于父元素寬度的百分之幾。此時,wrap的左邊緣距離outer的左邊緣是outer.width的一半,也就是說wrap的左邊緣在outer的中線上。

但是我們想要inner的中線和outer的中線重疊,那麼就需要inner再往左移動它自身寬度的一半,但是它自身的寬度不知道啊,這就是為什麼需要再加一層wrap且wrap要浮動(包裹)的原因,可根據「relative設定百分比意思是相對于父元素寬度的百分之幾」這個規則。由於wrap的寬度和inner的相等,50%就是inner的寬度的50%。

這個方法也有缺點,由於wrap浮動了,應該清除浮動。

方法二:將要居中的元素放到table的乙個td標籤中

原因是table不是塊元素,它不會佔滿整行,其寬度是由內容來撐開的,此時可以設定table的

margin:0 auto;`
即可。

缺點是增加了無語義標籤。

方法三 改變塊元素屬性為inline

這樣其父元素就可以使用text-align:center居中內部元素

設定父元素的height和line-height相等。

方法一:

將要垂直居中的元素放到table的td中,然後對td設定:

verticle-align:middle;
其實預設就是這樣。verticle-align只適用於 inline level, inline-block level 及 table-cells 元素上。

方法二:

在chrome、firefox 及 ie8 以上的瀏覽器下可以設定塊級元素的 display 為 table-cell,啟用 vertical-align 屬性,但注意 ie6、7 並不支援這個樣式。可以不用table-row這一層,直接外層table,內層table-cell就能實現內層元素中的內容垂直居中。例如下面的tocenter想要在box中垂直居中,需要設定box為table-cell,這樣就可以啟用其vertical-align:

class="box">

class="tocenter">

我想要在父元素中垂直居中顯示

div>

div>

.box

.tocenter

缺點:ie6和ie7並不支援display:table-cell。

方法三:要居中的元素高度確定

1.利用定位

class="outer">

class="inner">div>

div>

css**為:

.outer

.inner

為啥垂直居中不可以像水平居中方法一一樣啊?

.inner

沒有用???

2.在要居中元素之前新增乙個浮動塊,再設定該塊的margin-bottom

div>

我想要在父元素中垂直居中顯示

div>

div>

.box

.tocenter//清除浮動

.floater//下邊距為 -要居中元素高度的一半

方法四 父元素的上下padding值設為一樣

當父元素的高度未設定時,將父元素的上下padding值設定為一樣就可以讓其內部的塊元素垂直方向上看上去居中了。

方法五

.box

.tocenter

方法六 使用box屬性

父元素設定:

display

:box;

box-align:center;

//將剩餘空間均分到子元素上下兩側

CSS垂直居中水平居中方法

center 剛在別人的部落格裡看到這種方法時真的覺得很奇葩,以下是大神的解釋 解釋 1 在普通內容流中,margin auto的效果等同於margin top 0 margin bottom 0。2 position absolute使絕對定位塊跳出了內容流,內容流中的其餘部分渲染時絕對定位部分不...

css垂直水平居中方法

1.塊級元素中的行內元素水平居中 給塊級元素設定 text align center 2.塊級元素1中的塊級元素2水平居中 1 給塊級元素2設定 margin 0 auto 2 給塊級元素2設定 display inline block 給塊級元素1中設定 text align center 1.塊...

垂直水平居中方法總結

今天老大隨口問了這個問爛了的問題,我只回答了兩種,好吧,還是老老實實總結下來加強下記憶吧。一 定位 邊距 固定寬高度適用 container inner 複製 container inner 複製 二 定位 transform 不固定寬高也適用 container inner 複製 三 flex布局...