假设我需要实现将三个块级元素并排对齐的如下效果:

代码如下:
1 <!DOCTYPE html>
2 <html lang="en-US">
3 <head>
4 <style>
5 .container {
6 display: inline-block;
7 margin: 15px;
8 padding: 5px;
9 width: 200px;
10 height: 200px;
11 border: 1px solid black;
12 }
13 </style>
14 </head>
15
16 <body>
17
18 <div style="margin: 200px;">
19 <div class="container">
20 <h2>Title</h2>
21 <p>One One One One</p>
22 </div>
23
24 <div class="container">
25 <h2>Title</h2>
26 <p>Two Two Two Two</p>
27 </div>
28
29 <div class="container">
30 <h2>Title</h2>
31 <p>Three Three Three Three</p>
32 </div>
33 </div>
34
35 </body>
36 </html>
然而,如果当某个div块中没有内容时,就会发生该div块上浮无法对齐的情况:

造成这种现象的原因在于:行内元素和替换元素(如img、input、textarea等)会有个称做 基线 的东西;基线位于文字的最底部。如果块状行内元素(inline-block)中无文本内容的时候,其基线就会自动移至元素的最底部。另外,图片以及非替换元素的基线也是为元素最底部的。
上述元素都是以这个基线作为垂直对齐的默认参照的,那么 块状行内元素无法对齐的原因就很容易理解了;看下面几个例子:


既然这种情况是由元素以基线对齐才导致的,那么 只要设置元素的垂直对齐方式为别的就可以了;即使用vertical-align属性,该属性的参数如图:

比如为块状行内元素引入样式 1 vertical-align: top; 后,便可以了:

来源:https://www.cnblogs.com/geek1116/p/10036650.html