雖然Div布局已經基本上取代了表格布局,但表格布局和Div布局仍然各有千秋,互有長處。比如表格布局中的垂直居中就是Div布局的一大弱項,不過好在千變萬化的CSS可以靈活運用,可以制作出準垂直居中效果,勉強過關。 要讓div中的內容垂直居中,無非有以下幾種方法,等我一一列舉:
一、行高(line-height)法
如果要垂直居中的只有一行或幾個文字,那它的制作最為簡單,只要讓文字的行高和容器的高度相同即可,比如:
p { height:30px; line-height:30px; width:100px; overflow:hidden; }
這段代碼可以達到讓文字在段落中垂直居中的效果。
二、內邊距(padding)法
另一種方法和行高法很相似,它同樣適合一行或幾行文字垂直居中,原理就是利用padding將內容垂直居中,比如:
p { padding:30px; }
這段代碼的效果和line-height法差不多。
三、定位法
顧名思義,定位法是利用CSS定位屬性position對元素進行定位的方法,也屬于模擬方法,不過它對IE的支持還是不錯的。 它的Html代碼為:
<div id="box"> <div id="sub"> <div id="content">垂直居中</div> </div> </div>
這段代碼比上一種方法中多出了一個名為sub的Div,它的作用是用來定位,原理就是:首先讓box出于相對定位,sub相對box出于相對定位,位于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>
這段代碼無論是在IE中還是Firefox中,都能正常居中了。 當然,肯定還有許多垂直居中的方法,歡迎各位朋友交流補充。