在前端开发中咱们常常须要将元素垂直居中对齐,咱们很天然的想到使用vertical-align属性,可是使用后却发现有时候能起做用,有时候却又不起做用。究其缘由仍是由于咱们没有将vertical-align属性弄清楚,今天就来分析一下这个属性,若分析有误,还请原谅,望一块儿探讨!css
Value: baseline | sub | super | top | text-top | middle | bottom | text-bottom | <percentage> | <length> | inherit Initial: baseline Applies to: inline-level and 'table-cell' elements Inherited: no Percentages: refer to the 'line-height' of the element itself Media: visual Computed value:for <percentage> and <length> the absolute length, otherwise as specified
该属性仅适用于inline,inline-block,table-cell元素html
介绍属性以前先来了解一下各个属性值表明着什么,经过下面这张图能够知道
咱们知道英语本子每行有4条线,其中红色的线即为基线前端
所用demowordpress
<div class="box"> <span class="aa"></span> x </div>
将元素的基线与父元素的基线对齐spa
.aa4{ display:inline-block; width:5px; height:5px; background:blue; vertical-align: baseline; }
baseline的肯定规则code
基于基线上(正值)下(负值)移动元素htm
input[name="sex"]{ margin:0; padding:0; vertical-align:-2px; }
基于基线向下移动-2px
继承
基于基线上(正值)下(负值)移动元素,值经过百分比乘上line-height而得ci
.aa2{ display:inline-block; width:5px; height:5px; background:blue; vertical-align: -10%; line-height: 30px; }
这里的vertical-align:-10%所表明的实际值是:-10% *
30 = -3px,即向基线下方移动3px
注意:若该元素没有定义line-height,则会使用继承的line-height值element
将元素的中线与父元素的基线加上字母x的高度的一半对齐
.aa3{ display:inline-block; width:5px; height:5px; background:blue; vertical-align: middle; }
将元素的顶部与父元素正文区域的顶部对齐,元素的位置受父元素font-size的大小影响
.aa5{ display:inline-block; width:5px; height:5px; background:blue; vertical-align: text-top; }
将元素的底部与父元素的正文区域的底部对齐,元素的位置受父元素font-size的大小影响
.aa6{ display:inline-block; width:5px; height:5px; background:blue; vertical-align: text-bottom; }
将元素的顶部与line box顶部对齐
.aa7{ display:inline-block; width:5px; height:5px; background:blue; vertical-align: top; }
将元素的底部与line box底部对齐
.aa8{ display:inline-block; width:5px; height:5px; background:blue; vertical-align: bottom; }
将元素置于基线上方合适的位置
.aa10{ display:inline-block; width:5px; height:5px; background:blue; vertical-align: super; }
将元素置于基线下方合适的位置
.aa9{ display:inline-block; width:5px; height:5px; background:blue; vertical-align: sub; }