垂直居中的方法有很多,在此记录一个我找到的简单好用的方法。

需要规定一个父DIV和一个子DIV,子DIV在父DIV里会垂直居中,然后把你想垂直居中的内容放在子DIV里就可以了。

chrome、firefox和IE均可用。IE只测试了Edge和IE11。

 1 <html>
 2 
 3 <head>
 4     <style>
 5         .vcenter-outter {
 6             display: table;
 7             background: green;
 8             width: 100%;
 9             min-height: 300px;
10         }
11 
12         .vcenter-inner {
13             display: table-cell;
14             text-align: center;
15             vertical-align: middle;
16         }
17 
18         .vcenter-inner span {
19             background: red;
20             width: 33%;
21             height: auto;
22         }
23     </style>
24 </head>
25 
26 <body>
27     <div class="vcenter-outter">
28         <div class="vcenter-inner">
29             <span>垂直居中</span>
30         </div>
31     </div>
32 </body>
33 
34 </html>

这个方法的好处是,如果你有多个不同类型的元素,都想在同一行垂直居中,那么你可以使用一个父DIV套住多个子DIV。

 1 <html>
 2 
 3 <head>
 4     <style>
 5         .vcenter-outter {
 6             display: table;
 7             background: green;
 8             width: 100%;
 9             min-height: 300px;
10         }
11 
12         .vcenter-inner {
13             display: table-cell;
14             text-align: center;
15             vertical-align: middle;
16         }
17 
18         .vcenter-inner span {
19             background: red;
20             width: 33%;
21             height: auto;
22         }
23     </style>
24 </head>
25 
26 <body>
27     <div class="vcenter-outter">
28         <div class="vcenter-inner">
29             <span>垂直居中的span</span>
30         </div>
31         <div class="vcenter-inner">
32             <ul>
33                 <li>垂直居中的ul</li>
34                 <li>垂直居中的ul</li>
35                 <li>垂直居中的ul</li>
36                 <li>垂直居中的ul</li>
37             </ul>
38         </div>
39         <div class="vcenter-inner">
40             <img>垂直居中的img</img>
41         </div>
42     </div>
43 </body>
44 
45 </html>

 

参考文章:http://www.htmleaf.com/ziliaoku/qianduanjiaocheng/201505121820.html