CSS居中問題一直是大家比較關(guān)注的問題,在此前的CSS在線的文章中也曾多次提到過CSS居中的相關(guān)話題,今天對(duì)CSS居中問題做一個(gè)匯總。
CSS居中問題,根據(jù)居中對(duì)象劃分主要包括:DIV居中,圖片居中,以及文字居中。而根據(jù)居中方向劃分為:水平居中和垂直居中。下面讓我們來一一詳述:
CSS 設(shè)置水平居中
A.如何設(shè)置CSS實(shí)現(xiàn)DIV的水平居中
CSS樣式
div {margin-left: auto; margin-right: auto; }這句CSS居中的意思就是讓div自己調(diào)整左右margin間隔的距離以達(dá)到水平居中的效果。
有時(shí)候我們還可以簡(jiǎn)寫為 div { margin:0px auto; }但這樣的簡(jiǎn)寫法,如果你調(diào)整 margin-top 或者 margin-bottom 就會(huì)失去CSS居中的水平居中效果,所以最好還是按上一種寫法比較好
代碼實(shí)例:
[CSS在線]-示例代碼
這種方式的缺點(diǎn)是:要設(shè)定容器的寬度,在比較舊的IE瀏覽器版本上顯示不正常
B.設(shè)置TEXT-ALIGN屬性實(shí)現(xiàn)居中
這種做法是hack,但是因?yàn)槟芗嫒荽蠖鄶?shù)瀏覽器,所以也經(jīng)常被應(yīng)用。之所以說它是hack,是因?yàn)檫@種方法并沒有將文本屬性應(yīng)用到文本上,而是應(yīng)用到了作為容器的元素上。這也給我們帶來了額外的工作。
body{text-align:center}
因?yàn)槿绱嗽O(shè)置會(huì)將父容器中所有的子元素的text-align屬性全部默認(rèn)為居中,因此不得不對(duì)其中需要居左或居右的元素添加text-align使得畫面呈現(xiàn)我們需要的樣子。
代碼實(shí)例:
[CSS在線]-示例代碼
這種方式的缺點(diǎn)是:子元素的默認(rèn)屬性也變成了居中
C.組合使用自動(dòng)外邊距和文本對(duì)齊
為了彌補(bǔ)上面兩種方式的缺點(diǎn),組合使用自動(dòng)外邊距和文本對(duì)齊,即在設(shè)置了text-align的容器中再嵌套一個(gè)容器,將子容器的text-align恢復(fù)為正常,并設(shè)置子容器的自動(dòng)外邊距。但這仍然不算完美的解決辦法
代碼實(shí)例:
[CSS在線]-示例代碼
D.負(fù)外邊距解決方案
負(fù)外邊距解決方案也是一種通過CSS實(shí)現(xiàn)元素居中的辦法,但是遠(yuǎn)不是僅僅為元素添加負(fù)外邊距這么簡(jiǎn)單,這種方法需要同時(shí)使用絕對(duì)定位和負(fù)外邊距兩種技巧。
下面是該方案的具體實(shí)現(xiàn)方法。首先,創(chuàng)建一個(gè)包含居中元素的容器,然后將其絕對(duì)定位于相對(duì)頁面左邊邊緣50%的位置。這樣,該容器的左外邊距將從頁面50%寬度的位置開始算起。
然后,將容器的左外邊距值設(shè)置為負(fù)的容器寬度的一半。這樣即可將該容器固定在頁面水平方向的中點(diǎn)。
[CSS在線]-示例代碼#container{
position:absolute;
left:50%;
width:800px;
margin-left:-400px;
}
代碼實(shí)例:
[CSS在線]-示例代碼
CSS 設(shè)置垂直居中
A.如何設(shè)置CSS實(shí)現(xiàn)DIV的垂直居中
設(shè)置DIV等容器元素的垂直舉重可以通過在CSS中使用expression根據(jù)父容器的高度和寬度,來計(jì)算確定DIV的margin-left和margin-top位置,從而實(shí)現(xiàn)div的垂直居中
代碼實(shí)例:
[CSS在線]-示例代碼
雖然這種辦法能夠?qū)崿F(xiàn)div的垂直居中,但是仍然是不推薦使用,因?yàn)閷?duì)瀏覽器資源要求比較高,另外expression只是在IE5.0后才支持。
B.如何設(shè)置CSS實(shí)現(xiàn)圖片的垂直居中
對(duì)這個(gè)CSS居中問題,我們可以使用設(shè)置背景圖片的方法,#samplediv{background: url("path") #FFF no-repeat center;}關(guān)鍵就在于這個(gè)Center屬性,它表示讓該背景圖片在容器中居中。你也可以把Cener換成Top Left或者直接寫上數(shù)字來調(diào)整它的位置。
代碼實(shí)例:
[CSS在線]-示例代碼
C.如何設(shè)置CSS實(shí)現(xiàn)文字的垂直居中
文字的垂直居中可以用增高行距的辦法實(shí)現(xiàn)垂直居中,示范代碼如下:
[CSS在線]-示例代碼#samplediv{ MARGIN-RIGHT: auto; MARGIN-LEFT: auto; height:200px; vertical-align:middle; line-height:200px; }
<div id="samplediv"><p>垂直居中的文字</p></div>
代碼說明:
vertical-align:middle;表示行內(nèi)垂直居中,我們將行距增加到和整個(gè)DIV一樣高line-height:200px;然后插入文字,就垂直居中了。
代碼實(shí)例:
[CSS在線]-示例代碼
聯(lián)系客服