顶线、中线、基线、底线
1.行高:是指上下文本行的基线间的重直距离,即图中两行红线间昏直距离。
2.行距:是指一行底线到下一行顶线的垂直距离,即第一行粉线和第二行绿线的重直距离
3.半行距:是行距的一半,即区域3垂直距离/2,
区城1,2, 3, 4的距离之和为行高,
而区域1, 2, 4距离之和为字体size,所以半行距也可以这么算: (行高-字体size) /2
4.内容区:底线和顶线包裹的区域,
文本行中的每个元素都会生成一个内容区,这个由字体的大小确定。这个内容区则会生成一个行内框
如果不存在其他因素,这个行内框就完全等于该元素的内容区,由line-height产生的行间距就是增加和减少各行内框高度的因素之一
5.行内框 : 行内框是一个浏览器渲染模型中的一个概念,无法显示出来,行内框默认等于内容区域, 将line-height的计算值减去font-size的计算值,这个值就是总行距,这个值可能是个负值,任何将行间距/2 分别应用到内容区的顶部和底部,其结果就是该元素的行内框
6.行框(line box),行框是指本行的一个虚拟的矩形框,是浏览器渲染模式中的一个概念,并没有实际显示。默认情况下行框高度等于本行内所有元素中行内框最大的值(一行上垂直对齐时以行高值最大的行内框为基准,其他行内框采用自己的对齐方式向基准对齐,最终计算行框的高度),当有多行内容时,每行都会有自己的行框。
如果要处理大量的文本,建议把行高设置的要比字体大1.5
行内框默认为内容区大小,加入行高之后影响行内框,为行高大小。行框为行内框最大的。
line-height:<length>
指定<length> 用于计算 line box 的高度。<percentage>
与元素自身的字体大小有关。计算值是给定的百分比值乘以元素计算出的字体大小。
行高继承的怪癖
父级行高使用的是百分比的话,子级继承的是父级百分比计算过后的值
父级行高使用的是number因子的话,子级直接继承的是父级的number因子
运用:
单行文本垂直居中