利用vertical-align:middle垂直居中

之前老是觉得vertical-align与text-align是一样的道理,一个是垂直居中,一个是水平居中,结果在这里一点效果也没有。事实上vertical-align与text-align彻底不同,vertical-align不能这样用。app

vertical-align 属性设置元素的垂直对齐方式。该属性定义行内元素的基线相对于该元素所在行的基线的垂直对齐。容许指定负长度值和百分比值。这会使元素下降而不是升高。在表单元格中,这个属性会设置单元格框中的单元格内容的对齐方式。默认值:baseline,元素放置在父元素的基线上。


第一种用法,先看后面一句“在表单元格中,这个属性会设置单元格框中的单元格内容的对齐方式。”这很容易理解,若是给一个表格的td加一个vertical-align:middle的样式,表格里面的内容会垂直居中,一样的若是给一个vertical-align:bottom就会底部对齐,若是给一个vertical-align:top就会顶部对齐。3d

第二种用法,该属性定义行内元素的基线相对于该元素所在行的基线的垂直对齐。假设有两个行内元素a和b,a和b都是div,当a加了一个vertical-align:middle样式以后,b的底部(基线)就会对齐a的中间位置,以下图:code

若是a和b都加了一个vertical-align:middle样式,那么就互相对齐了对方的中间位置,也就是它们在垂直方向上的中线对齐了,以下图:blog

如今我要让class="box"的div在class="wrapper"的div里面垂直居中,我能够在class="wrapper"的div里面加一个div空标签,把它的高度设为100%,宽度设置为0,再给它一个vertical-align:middle样式,一样的给class="box"的div一个vertical-align:middle样式,那么box就能够在div里面垂直居中了。
 1 <style>
 2     .wrapper {
 3         width: 200px;
 4         height: 200px;
 5         background-color: green;
 6 
 7         margin: 0 auto;        
 8         text-align: center;
 9     }
10 
11     .help {
12         width: 0;
13         height: 200px;
14 
15         display: inline-block;
16         vertical-align: middle;
17 
18     }
19     .content {
20         width: 100px;
21         height: 100px;
22         background-color: yellow;
23 
24         vertical-align: middle;
25         display: inline-block;
26 
27     }
28     
29 </style>
30 </head>
31 <body>
32     <div class="wrapper">
33         <div class="help"></div>
34         <div class="content"></div>
35     </div>
36 
37 </body>

   

 

 

下面咱们来看一张图来更好理解垂直对齐主要属性值的表现形式

 

相关文章
相关标签/搜索