如何讓div中的內(nèi)容垂直居中
雖然Div布局已經(jīng)基本上取代了表格布局,但表格布局和Div布局仍然各有千秋,互有長(zhǎng)處。比如表格布局中的垂直居中就是Div布局的一大弱項(xiàng),不過(guò)好在千變?nèi)f化的CSS可以靈活運(yùn)用,可以制作出準(zhǔn)垂直居中效果,勉強(qiáng)過(guò)關(guān)。 要讓div中的內(nèi)容垂直居中,無(wú)非有以下幾種方法,等我一一列舉:
一、行高(line-height)法
如果要垂直居中的只有一行或幾個(gè)文字,那它的制作最為簡(jiǎn)單,只要讓文字的行高和容器的高度相同即可,比如:
p { height:30px; line-height:30px; width:100px; overflow:hidden; }
這段代碼可以達(dá)到讓文字在段落中垂直居中的效果。
二、內(nèi)邊距(padding)法
另一種方法和行高法很相似,它同樣適合一行或幾行文字垂直居中,原理就是利用padding將內(nèi)容垂直居中,比如:
p { padding:30px; }
這段代碼的效果和line-height法差不多。
三、定位法
顧名思義,定位法是利用CSS定位屬性position對(duì)元素進(jìn)行定位的方法,也屬于模擬方法,不過(guò)它對(duì)IE的支持還是不錯(cuò)的。 它的Html代碼為:
<div id="box"> <div id="sub"> <div id="content">垂直居中</div> </div> </div>
這段代碼比上一種方法中多出了一個(gè)名為sub的Div,它的作用是用來(lái)定位,原理就是:首先讓box出于相對(duì)定位,sub相對(duì)box出于相對(duì)定位,位于box垂直方向的50%,從而制作出content在box中垂直居中的效果,它們的CSS代碼如下:
<html>
<head>
<style>
#box {
border:1px solid #000; background:#F00; width:400px; height:400px; position:relative;
}
#subwrap {
position:absolute; top:50%;
}
#content {
border:1px solid #000;color:#FFF;
}
</style>
</head>
<body>
<div id="box">
<div id="subwrap">
<div id="content">dddd</div>
</div>
</div>
</body>
</html>
這段代碼無(wú)論是在IE中還是Firefox中,都能正常居中了。 當(dāng)然,肯定還有許多垂直居中的方法,歡迎各位朋友交流補(bǔ)充。
posted on 2012-08-22 15:06 強(qiáng)強(qiáng) 閱讀(629) 評(píng)論(0) 編輯 收藏 所屬分類: css 處理技巧