用css讓元素水平垂直居中幾種方法

2021-09-26 04:24:28 字數 1961 閱讀 9884

針對小白和小白面試人群首先說一些題外話,那就說一下博主大四上半年去一家公司面試的尷尬事吧。 哈哈~~我記得那是我第一次列印簡歷正式面試的第一家,那個哥可以說很面善,人狠話不多,面對著自信滿滿(渣到爆)的我,第乙個問題問我行元素塊元素的區別,我一想,這個我會啊,可是以我當時的想法我只能舉例子啊,那就說p是行元素吧,div是塊元素吧,哈哈哈,面試大哥都笑了,哈哈哈,現在想起來我也想笑,那麼現在就先說一下行元素和塊元素吧!

行元素:內容決定所佔空間的多少,內容多少就佔多少空間。不能設定寬高(預設寬高是0)。margin垂直方向無效。

常見的行元素:span, a, b, i, u, font, sub, sup

塊元素:不管內容多少,塊元素都會在瀏覽器中獨佔一行,可以設定寬高,如果不設定寬高那麼寬就是100%(佔滿父級元素的一整行)

常見的塊元素: div, h1-h6, p, ul, li, ol, dl, dt, hr, form, table,tr, td

行級塊元素: 共享一行,可以設定寬高,可以設定margin, padding。

常見的行級塊元素: img, input

那麼現在我們就來戳重點啦~

我們知道行級元素不能設定寬高,那怎樣讓單行元素居中,如下**:

height:

30px;

line-height:

30px;

text-align:center;

那麼怎樣讓多行元素居中,如下**:

display: table-cell;

width:

200px;

height:

150px;

border:

1px solid blue;

vertical-align: middle;

我們知道塊級元素可以設定寬高,自然就可以有很多種方法讓塊元素垂直居中:

絕對定位,(不知道塊元素的寬高是多少時);

div
絕對定位,(已知塊元素的寬高是多少時1);

div
絕對定位,(已知塊元素的寬高是多少時2);

div
flex布局,(給當前元素的父級新增);

//html

="father"

>

="son"

>

<

/div>

<

/div>

/**css**/

.father

.son

table-cell實現水平垂直居中
//html

="table-cell"

>

我愛你<

/p>

<

/div>

/**css**/

.table-cell

絕對定位(calc() 函式動態計算實現水平垂直居中)

/**css**/

.parent

.child

.child.size

grid(網格布局)

/**css**/

.parent

.child

目前知道的就是這些方法啦,水平垂直劇中是頁面最常用到的,例如:彈出框,按鈕等等,我這裡只是寫出了幾種,還有很多水平垂直的方法,希望大家來幫忙補充哈~

第一次寫部落格,緊張之下如有錯誤希望得到更改通知。

那請多指教!

css讓元素水平垂直居中

利用flex布局 無需知道被居中元素的寬高 container利用absolute transform 無需知道被居中元素的寬高 設定父元素非 static 定位 container 子元素絕對定位,使用 translate的好處是無需知道子元素的寬高 如果知道寬高,也可以使用 margin 設定 ...

CSS實現元素水平居中 垂直居中 水平垂直居中

1.元素水平居中 1.1行內元素水平居中 1.2塊級元素水平居中 1.2.1定寬塊級元素的水平居中 1.2.2不定寬塊級元素水平居中 2.元素垂直居中 2.1 單行文字垂直居中 2.2 多行文字垂直居中 2.3塊級元素垂直居中 3.元素水平垂直居中 像文字text 影象img 按鈕等行內元素要實現水...

幾種可以讓元素水平垂直居中的方法

1.負margin法 這是比較常用的方法,在知道元素的寬高的前提下才能使用 a 注 負margin是個非常有意思的用法,深入了解後會發現他在布局上相當有用。優點 量少,相容性好。缺點 非響應式方法,內容可能會超出容器。2.transform法 a 優點 量少 寬高可變,相應式布局 缺點 不支援ie8...