關於css垂直水平居中的幾種方式

2022-06-27 23:00:13 字數 2116 閱讀 1308

css中元素的垂直水平居中是比較常見及較常使用的,在這裡向大家介紹一下幾種方式。

margin: 0 auto;
效果圖:

而文字的垂直水平居中也比較簡單,加上line-height: 200px;與text-align: center;即可。

#test

效果圖:

相對於文字來講,元素的垂直水平居中就沒這麼簡單,因為line-height: 200px;與text-align: center;都是針對文字的屬性,對於元素我們需要使用定位。

a.已知元素高寬的垂直水平居中

#wrap#inner

<

div

id="wrap"

>

test

div>

效果圖:

在這裡需要注意margin-left與margin-top需要給定-50px即當前元素的一半而非-50%,因為%是相對于父元素的大小,所以這種需要已知元素的高寬。

而除了給margin負值外,還有一種方式:

#wrap#inner
效果圖:

這裡需要注意的是元素的高寬也需要定義,如果沒有定義高寬元素會填充整個父元素。

而此種方式就要說到絕對定位盒子的特性:

1.高寬有內容撐開

2.水平方向上: left + right + width + padding + margin = 包含塊padding區域的尺寸

3.垂直方向上: top + bottom + height + padding + margin = 包含塊padding區域的尺寸

我們可以嘗試代入引數:

水平:0 + 0 + 100 + 0 + auto = 400

margin:auto根據公式可得300px及左右各分得150px,

垂直:0 + 0 + 100 + 0 + auto = 600

margin:auto根據公式可得500px及左右各分得250px,

而前面提到的如果沒有定義高寬則高寬預設值為auto,

水平:0 + 0 + auto + 0 + auto = 400

垂直:0 + 0 + auto + 0 + auto = 600

元素會填充整個父元素即包含塊尺寸均分配給高寬,由此可知高寬優先順序高於margin。

而如果不定義margin: auto;

水平:0 + 0 + 100 + 0 + 0 = 400

垂直:0 + 0 + 100 + 0 + 0 = 600

資料均定死則不會分配margin

b.未知元素高寬的垂直水平居中

#wrap#inner
效果圖:

對於translate3d(-50%,-50%,0)中的三個引數分別為x軸偏移自身一半、y軸偏移自身一半、z軸不動,但是在can i use中我們可以看到transform的相容性並不是太好。

css 水平居中 垂直居中 水平垂直居中

一 水平居中 1 行內元素水平居中text align center 2 塊級元素水平居中margin 0 auto 3 多個塊狀元素的水平居中 實現多個水平排列的塊狀元素的水平居中,是將要水平排列的塊狀元素設為display inline block,然後在父級元素上設定text align ce...

css水平居中 垂直居中 水平垂直居中

css水平居中 垂直居中 水平垂直居中 水平居中 行內元素 block text align 塊級元素 方案一 分寬度定不定兩種情況 定寬度 margin 0 auto 作用 使盒子自己居中,意思是上下距離為0,auto就是左右自適應兩邊距離 不定寬度 設定子元素display inline blo...

關於水平垂直居中的幾種方式

1.如果要設定某個元素在窗體中水平垂直居中的話,將此元素設定為絕對定位 不設定其祖先為相對定位,讓其預設針對窗體定位 然後設定元素的margin值為auto,在設定定位的上下左右都為0,即可實現此元素在窗體中水平垂直居中。如 margin auto position absolute top 0 b...