在HTML中各类型盒子的基线应如何确定

在HTML中各类型盒子的基线应如何确定
  确定盒子的基线的规则
 
  1.1确定inline-block的基线
 
  Thebaselineofan'inline-block'isthebaselineofitslastlineboxinthenormalflow,unlessithaseithernoin-flowlineboxesorifits'overflow'propertyhasacomputedvalueotherthan'visible',inwhichcasethebaselineisthebottommarginedge.
 
  1.2确定replacement的基线
 
  bottommarginedge
 
  1.3确定inline的基线
 
  就是它所包含的那些文字的基线
 
  1.4确定inline-table的基线
 
  Thebaselineofan'inline-table'isthebaselineofthefirstrowofthetable
 
  1.5确定block的基线
 
  每个block一般都含有很多行的元素,所以它的基线也有很多条,每条对应一个line-box,line-box的基线确定稍复杂,看第二章
 
  1.6确定flex-box每行的基线(可能未来需要改)
 
  拿一行中高度最高的Flex-item的第一行文字的基线当做flex-box当前行的基线
 
  1.7确定line-box的基线(较复杂)
 
  首先不同于其他类型的盒子,CSS2.1doesnotdefinethepositionofthelinebox'sbaseline,所以它的基线是不确定的,会随着行内元素的内容或样式的改变而改变。具体怎么改变看第二小节
 
  哪些因素会影响line-box的基线的位置
 
  当一行内有一个elem与line-box同等高度时
 
  因为元素已经与当前行等高了,所以在这个elem上设置的vertical-align对它本身是没有视觉上的任何效果的,但会影响当前line-box的基线的位置。
 
  当一行内有多个vertical-align值互不相同的元素时,line-box的基线的位置也会为了同时满足这些个所有的vertical-align值而把line-box的基线移动到恰当的位置为止,常常伴随浙line-box的高度也会随之变化

推荐阅读