如何讓高度、寬度不定的容器保持水平、垂直居中


這個題目似乎解決的辦法很多,JS是最能夠確保各種瀏覽器中一致性的,但是仍然可以使用CSS的方式來解決。這個問題分解為兩個方面,第一解決左右居中的問題,第二解決上下居中的問題。
 
1、左右居中。
 
左右居中最為簡單,使用 text-align:center; 就可以讓絕大多數的對象居中對齊,並且這個屬性也獲得了幾乎全部瀏覽器的支持。實際上,這個屬性定義的是塊級對象內部文字的對齊方式,內部的文字或者圖像一般是內聯對象。
 
也許有人會提到,為什么不用 margin:0 auto;這個辦法呢?這是一個好問題,在做居中布局的頁面時,這是我們最常用的讓DIV容器居中的辦法。margin作用於塊級元素,而是否作用於其他內斂元素,不同的瀏覽器有着不同的解釋,因此對於左右居中,沒有使用這個方法。
 
2、上下居中。
 
上下居中,有兩種方法,一種是負margin的辦法,這種對於固定寬度的容器,非常的好用。另外一種就是適應於高度不固定的情形,即使用 vertical-align 屬性。Vertical-align 屬性定義行內元素的基線相對於該元素所在行的基線的垂直對齊。允許指定負長度值和百分比值。這會使元素降低而不是升高。在表單元格中,這個屬性會設置單元格框中的單元格內容的對齊方式。
 
3、最后代碼
 
綜上,可以得出對於高度、寬度都不固定的容器,如何讓其做到水平、垂直居中:
 
 1 <!DOCTYPE html>   
 2 <html>   
 3 <head>   
 4 <meta http-equiv=“Content-Type” content=“text/html; charset=utf-8″ />   
 5 <title>水平、垂直居中</title>   
 6 <style type=“text/css”>   
 7 #container_outer { display:table; width:1200px; height:1000px; overflow:hidden; margin-left:50px; _position:relative; }   
 8 #container_inner { vertical-align:middle; display:table-cell; text-align:center; _position:absolute; _top:50%; _left:50%; }   
 9 #content { color:#fff; border:1px solid #000; display:inline-block; _position:relative; _top:-50%; _left:-50%; }   
10 </style>   
11 <body>   
12 <div id=“container_outer”>
13      <div id=“container_inner”>
14           <div id=“content”>   
15 動態內容...
16 </div>
17 </div>
18 </div>   
19 
20 </body>   
21 </html> 

 

 
參考資料:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM