如何讓div中的內容垂直居中

  雖然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中對元素的聲明讓塊元素像表格一樣顯示,用到的CSS屬性有display、vertical-align等。 先看下面的Html代碼:

<div id="box"> <div id="content">居中顯示</div> </div>

參照以上Html代碼,讓最外面名爲box的Div呈表格樣式顯示,然後再讓box中名爲content的Div呈單元格顯示,並利用vertical-align:middle讓其垂直居中,這樣就模擬出來和表格一樣的顯示方式,CSS代碼如下:

#wrap { height:400px; display:table; } #content { vertical-align:middle; display:table-cell; border:1px solid #FF0099; background:#000; width:400px; }

但這種方法有一個弊端,由於IE瀏覽器對高度理解會產生錯誤,所以這種方法僅對Firefox有效,對IE無效,既然這樣,我們就需要找出對IE的修正方法,於是有了另外一種方法。

四、定位法

顧名思義,定位法是利用CSS定位屬性position對元素進行定位的方法,也屬於模擬方法,不過它對IE的支持還是不錯的。 它的Html代碼爲:

<div id="box"> <div id="sub"> <div id="content">垂直居中</div> </div> </div>

這段代碼比上一種方法中多出了一個名爲sub的Div,它的作用是用來定位,原理就是:首先讓box出於相對定位,sub相對box出於相對定位,位於box垂直方向的50%,再讓content中的真正內容出於sub垂直方向的-50%,從而製作出content在box中垂直居中的效果,它們的CSS代碼如下:

#wrap { border:1px solid #000; background:#F00; width:400px; height:400px; position:relative; } #subwrap { position:absolute; top:50%; } #content { border:1px solid #000; position:relative; top:-50%; color:#FFF; }

這段代碼無論是在IE中還是Firefox中,都能正常居中了。 當然,肯定還有許多垂直居中的方法,歡迎各位朋友交流補充。

發佈了20 篇原創文章 · 獲贊 4 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章