如何讓div中的內容垂直居中
阿新 • • 發佈:2019-01-01
雖然Div佈局已經基本上取代了表格佈局,但表格佈局和Div佈局仍然各有千秋,互有長處。比如表格佈局中的垂直居中就是Div佈局的一大弱項,不過好在千變萬化的CSS可以靈活運用,可以製作出準垂直居中效果,勉強過關。 要讓div中的內容垂直居中,無非有以下幾種方法,等我一一列舉:
一、行高(line-height)法
如果要垂直居中的只有一行或幾個文字,那它的製作最為簡單,只要讓文字的行高和容器的高度相同即可,比如:
p { height:30px; line-height:30px; width:100px; overflow:hidden; }
二、內邊距(padding)法
另一種方法和行高法很相似,它同樣適合一行或幾行文字垂直居中,原理就是利用padding將內容垂直居中,比如:
p { padding:30px; }
三、模擬表格法
模擬表格法其實就是用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; }