摘要:寫在前面垂直水平居中即垂直與水平方向上都要居中,也就是視覺效果中的,處于視圖的正中間。我們把需要垂直水平居中的設(shè)置為。使用使塊級元素垂直居中是很簡單的。
寫在前面:
垂直水平居中即垂直與水平方向上都要居中,也就是視覺效果中的,處于視圖的正中間。下面,我們來講講幾個css中常用的垂直水平居中的解決方案
方法1:1、把外層的div的顯示方式設(shè)置為table,即display: table;
2、把內(nèi)層的div的顯示方式設(shè)置為table-ceil,即display: table-ceil;
這樣一來,我們就可以把這格html結(jié)構(gòu)看成表格和表格中的一個小格。由于表格中只有一個ceil,所以它會自動撐開整個表格,給它設(shè)置寬高是無效的,它的寬高是wrapper的寬高。ceil中的內(nèi)容content就可以自動垂直居中了。
其中:
垂直居中: 利用vertical-align: middle;
水平居中: 利用text-align: center;
具體代碼如下:
Hello world!
css代碼:
.wrapper { display: table; width: 400px; height: 200px; background-color: red; } .ceil { display: table-cell; vertical-align: middle; background-color: blue; text-align: center; }
效果如下:
接著我們把content中的內(nèi)容加長看看效果:
從上面可以看到,wrapper本來應(yīng)該是紅色背景的,但是現(xiàn)在整個ceil撐開了整個表格,所以把wrapper的背景覆蓋了,呈現(xiàn)出藍色。
優(yōu)點:
content 可以動態(tài)改變高度(不需在 CSS 中定義)。當 wrapper 里沒有足夠空間時,content不會被截斷,也就是說content會自動撐開wrapper
缺點:
實現(xiàn)起來比較繁瑣,需要額外嵌套的標簽。
方法2:絕對定位法。
1、我們把需要垂直水平居中的position設(shè)置為absolute。
2、設(shè)置top為0, left為0,margin為寬高一半的負值。即把盒先一種偏中間的地方,然后再進行微調(diào):
Hello World!
.container{ position: relative; width: 400px; height: 300px; background-color: red; } .content{ position: absolute; width: 100px; height: 100px; background-color: blue; top: 50%; left: 50%; margin-top: -50px; // 高的一半,視實際情況而定 margin-left: -50px; // 寬的一半,視實際情況而定 }
注意:絕對定位absolute,是相對于最近非static的祖先元素進行定位的,所以我們要在其相對定位的元素上定義display屬性。
同樣當文字溢出的時候:
優(yōu)點:
適用于所有瀏覽器
不需要嵌套標簽
缺點:
由于高度是限定好的,沒有足夠空間時,content會溢出,這時我們可以設(shè)置:overflow:auto; 這時當溢出的時候就會出現(xiàn)滾動條。
方法3:在方法2的基礎(chǔ)上進行改動,把margin負值改為transform和 translate
.container{ position: relative; width: 400px; height: 300px; background-color: red; } .content{ position: absolute; background-color: blue; top: 50%; left: 50%; transform: translate(-50%, -50%); }
優(yōu)點,不需要定義寬高,靈活性高方法4:缺點:仍要注意截斷問題
這個方法使用了 position:absolute,有固定寬度和高度的 div。這個 div 被設(shè)置為 top:0; bottom:0;。但是因為它有固定高度,其實并不能和上下都間距為 0,因此 margin:auto; 會使它居中。使用 margin:auto;使塊級元素垂直居中是很簡單的。
Content here
.content { position: absolute; top: 0; bottom: 0; left: 0; right: 0; margin: auto; height: 240px; width: 70%; }
優(yōu)點:
簡單
缺點:
IE(IE8 beta)中無效
無足夠空間時,content 被截斷,但是不會有滾動條出現(xiàn)
方法5:最常用的單行文本居中
這個方法只能將單行文本居中。
1、把 line-height設(shè)置為那個對象的 height 值使文本垂直居中
2、把 text-align 設(shè)置為center,使文本水平居中
Hello world!
.content { height: 100px; line-height: 100px; text-align: center; }
優(yōu)點:
適用于所有瀏覽器
無足夠空間時不會被截斷
缺點:
只對文本有效(塊級元素?zé)o效)
多行時,斷詞比較糟糕
這個方法在小元素上非常有用,例如使按鈕文本或者單行文本居中。
方法6:完美居中方案 —— flex布局
.parent{ display : flex; width : 300px; height : 300px; background-color : red; } .child{ width : 100px; height : 50px; margin : auto; background-color: green; }
關(guān)鍵點:
1、display:flex;
2、margin:auto;
參考資料:
css實現(xiàn)垂直居中的5種方法
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/113050.html
摘要:水平居中行內(nèi)元素解決方案適用元素文字,鏈接,及其其它或者類型元素,,部分代碼文字元素鏈接元素鏈接元素鏈接元素部分代碼解決方案將元素包裹在一個屬性為的父級元素中如設(shè)置這個父級元素屬性即可現(xiàn)在大家可以看到和中的子元素水平居中了水平居 1.水平居中:行內(nèi)元素解決方案 適用元素:文字,鏈接,及其其它inline或者inline-*類型元素(inline-block,inline-table,i...
摘要:水平居中行內(nèi)元素解決方案適用元素文字,鏈接,及其其它或者類型元素,,部分代碼文字元素鏈接元素鏈接元素鏈接元素部分代碼解決方案將元素包裹在一個屬性為的父級元素中如設(shè)置這個父級元素屬性即可現(xiàn)在大家可以看到和中的子元素水平居中了水平居 1.水平居中:行內(nèi)元素解決方案 適用元素:文字,鏈接,及其其它inline或者inline-*類型元素(inline-block,inline-table,i...
摘要:水平居中內(nèi)聯(lián)元素水平居中利用可以實現(xiàn)在塊級元素內(nèi)部的內(nèi)聯(lián)元素水平居中。此方法對內(nèi)聯(lián)元素內(nèi)聯(lián)塊內(nèi)聯(lián)表元素水平居中都有效。核心代碼演示程序演示代碼垂直居中單行內(nèi)聯(lián)元素垂直居中通過設(shè)置內(nèi)聯(lián)元素的高度和行高相等,從而使元素垂直居中。 簡言 CSS居中是前端工程師經(jīng)常要面對的問題,也是基本技能之一。今天有時間把CSS居中的方案匯編整理了一下,目前包括水平居中,垂直居中及水平垂直居中方案共15種。...
摘要:水平居中內(nèi)聯(lián)元素水平居中利用可以實現(xiàn)在塊級元素內(nèi)部的內(nèi)聯(lián)元素水平居中。此方法對內(nèi)聯(lián)元素內(nèi)聯(lián)塊內(nèi)聯(lián)表元素水平居中都有效。核心代碼演示程序演示代碼垂直居中單行內(nèi)聯(lián)元素垂直居中通過設(shè)置內(nèi)聯(lián)元素的高度和行高相等,從而使元素垂直居中。 簡言 CSS居中是前端工程師經(jīng)常要面對的問題,也是基本技能之一。今天有時間把CSS居中的方案匯編整理了一下,目前包括水平居中,垂直居中及水平垂直居中方案共15種。...
摘要:水平居中內(nèi)聯(lián)元素水平居中利用可以實現(xiàn)在塊級元素內(nèi)部的內(nèi)聯(lián)元素水平居中。此方法對內(nèi)聯(lián)元素內(nèi)聯(lián)塊內(nèi)聯(lián)表元素水平居中都有效。核心代碼演示程序演示代碼垂直居中單行內(nèi)聯(lián)元素垂直居中通過設(shè)置內(nèi)聯(lián)元素的高度和行高相等,從而使元素垂直居中。 簡言 CSS居中是前端工程師經(jīng)常要面對的問題,也是基本技能之一。今天有時間把CSS居中的方案匯編整理了一下,目前包括水平居中,垂直居中及水平垂直居中方案共15種。...
摘要:為了更好的加深對居中的理解,搜集和閱讀相關(guān)資料,發(fā)現(xiàn)不錯的文章將其整理出來。 在學(xué)習(xí)前端的過程中,發(fā)現(xiàn)元素和文本的水平居中和垂直居中,是經(jīng)常會出現(xiàn)的問題,在實際工作中也會經(jīng)常碰到。居中的技巧有很多,但在編寫代碼的過程中,發(fā)現(xiàn)有時候技巧管用,有時候不管用,于是就將每個知道的方案都試一遍,找到合適的。這種情況究其原因是對居中的認識不夠深入,只是停留在實現(xiàn)需求的水平上。為了更好的加深對居中的...
閱讀 1772·2021-11-15 11:37
閱讀 3044·2021-11-04 16:05
閱讀 1910·2021-10-27 14:18
閱讀 2741·2021-08-12 13:30
閱讀 2486·2019-08-29 14:18
閱讀 2076·2019-08-29 13:07
閱讀 2004·2019-08-27 10:54
閱讀 2714·2019-08-26 12:15