vertical-align是用来设置行内元素对齐方式的。或者说display属性值为inline、inline-block、inline-table另加一个table-cell的元素
基线

基线的位置并不是固定的:
- 在文本之类内联元素中,基线是字符的下边缘位置 
- 在像 - img元素中基线就是下边缘。
- 在 - inline-block元素中,也分两种情况- inline-block元素盒子里,没有内容(流内内容),是一个空的盒子时,- baseline位置就是该盒子- margin-bottom的边界(没有- margin-bottom值,就是盒子的边界值)。如下图左侧div
- inline-block元素盒子里,有内容元素,并且- overflow属性值为- visible时(默认值),那么该盒子的- baseline位置就是里面最后一个内容元素的- baseline。如下图中间div
- inline-block元素盒子里,有内容元素,并且- overflow属性值为非- visible时 (比如- overflow: hidden;),那么该盒子的- baseline位置就是该盒子margin-bottom 的边界。如下图右侧 div
  
属性取值
- baseline: 默认值,就是基线对齐1 
 2
 3
 4
 5
 6<div style="background: blue"> 
 x
 <img src="./box.png">
 <span style="display: inline-block;">vertical</span>
 <span style="display: inline-block; overflow: hidden;height: 80px;">123</span>
 </div>
最下面将会出现空隙,被默认行高撑开的
- middle: 让子元素盒子垂直中点与行盒子的 - baseline加 字母 X 高度的一半对齐
- text-top: 子元素盒子的顶部和行盒子里内容区域的顶部对齐 
- text-bottom: 子元素盒子的底部和行盒子里内容区域的底部对齐 
- sub: 降低子元素盒子的基线到父元素盒子下标的位置 
- super: 升高子元素盒子的基线到父元素盒子上标的位置 
- top: 子元素盒子的顶部相对行盒子的顶部对齐 
- bottom: 子元素盒子的底部和行盒子的底部对齐 

实例
| 1 | <style> | 
图片默认间隙问题
| 1 | <style> | 
原因:图片为行内元素,默认垂直对齐方式 vertical-align: baseline ,所以底边留有空隙
解决办法:
- 图片的元素类型进行转换1 
 2
 3img { 
 display: block;
 }
- 改变对齐方式1 
 2
 3img { 
 vertical-align: middle;
 }
- 设置 font-size没有默认空文本内容在旁干扰 1 
 2
 3#root { 
 font-size: 0;
 }