DIV等標簽本身沒有定義自己居中的屬性,網(wǎng)上很多的方法都是介紹用上級的text-align:center,然后嵌套一層DIV來解決問題。
可是這個方法有時候完全不起作用,而且對于布局是非常不科學的方法。正確的的設(shè)置寫法如下(對頁面構(gòu)造沒有影響):
div {margin-left: auto; margin-right: auto; }
這句CSS居中的意思就是讓div自己調(diào)整左右margin間隔的距離以達到水平居中的效果。
有時候我們還可以簡寫為 div { margin:0px auto; }
但這樣的簡寫法,如果你調(diào)整 margin-top 或者 margin-bottom就會失去CSS居中的水平居中效果。
另外,如果你的div還沒有指定寬度(可以是相對的大?。@種CSS居中寫法也起不到應(yīng)有的效果,解決辦法是為這個div指定一個width寬度,例如:width:auto; 或者 width:50% 之類的。
同時,你的頁面類型 即document type必須聲明為xhtml。至于松散還是嚴格都不影響。
這個寫法也適用于圖片img和一些其他的盒狀標簽的CSS居中。
最后,假如你在IE和FireFox兩個瀏覽器中看起來不一樣,你最好采用 text-align:center; 和 margin兩個CSS居中一起設(shè)置的方法。例如:
#layout {TEXT-ALIGN: center;}
#center { MARGIN-RIGHT: auto; MARGIN-LEFT: auto; }
說明:首先在父級元素定義TEXT-ALIGN:center;這個的意思就是在父級元素內(nèi)的內(nèi)容居中;對于IE這樣設(shè)定就已經(jīng)可以了。但在mozilla中不能居中。解決辦法就是在子元素定義時候設(shè)定時再加上“MARGIN-RIGHT: auto;MARGIN-LEFT: auto;”需要說明的是,如果你想用這個方法使整個頁面要居中,建議不要套在一個DIV里,你可以依次拆出多個div,只要在每個拆出的div里定義MARGIN-RIGHT: auto;MARGIN-LEFT: auto; 就可以了。
二. CSS居中 — 垂直居中
1. 如何使圖片在DIV中垂直居中
對這個CSS居中問題,我們可以使用設(shè)置背景圖片的方法。舉例:
body {BACKGROUND: url(”sample.gif”) #FFF no-repeatcenter;}
關(guān)鍵就在于這個Center屬性,它表示讓該背景圖片在容器中居中。你也可以把Cener換成TopLeft或者直接寫上數(shù)字來調(diào)整它的位置。
2.如何使文本在DIV中垂直居中
對于文字,便不能用背景方法,可以用增高行距的辦法變通實現(xiàn)垂直居中,示范代碼如下:
#center{ MARGIN-RIGHT: auto; MARGIN-LEFT: auto;height:200px;vertical-align:middle; line-height:200px;}
<divid=”center”><p>testcontent</p></div>
說明:
vertical-align:middle;表示行內(nèi)垂直居中,我們將行距增加到和整個DIV一樣高line-height:200px;然后插入文字,就垂直居中了。
3.CSS+DIV控制頁面中元素垂直居中代碼,實現(xiàn)全局和區(qū)域CSS垂直居中
示范代碼:
<style type=”text/css”media=screen>
body
{
text-align: center;
}
#a
{
width: 200px;
height: 400px;
background: #000;
}
#b
{
margin-top: expression_r((a.clientHeight-50)/2);
width: 50px;
height: 50px;
background: #FFF;
}
#c
{
position: absolute;
left: expression_r((body.clientWidth-50)/2);
top: expression_r((body.clientHeight-50)/2);
width: 50px;
height: 50px;
background: #F00;
}
</style>
<div id=”a”>
<divid=”b”></div>
</div>
<divid=”c”></div>
另一CSS居中方法:
<divstyle=”background:blue;position:absolute;left:expression_r((body.clientWidth-50)/2);top:expression_r((body.clientHeight-50)/2);width:50;height:50″></div>
加一種CSS水平垂直居中方法,本方法在www.chinaret.com中使用.
#LoginBar {position: absolute; left:50%; Top:50%; margin-top: -68px; z-index:1; margin-left: -150px; width: 300px;
Height:156px;text-align:left;
愛華網(wǎng)

