深入理解CSS行高line-height

行高: 两行文字“基线”之间的垂直距离

基线并不是汉字的下端沿,而是英文字母"x"的下端沿

行距: 一行“底线”至下一行“顶线"的垂直距离

行间距: 行高 - 字体大小

行内框:高度就是行高,在没有其他因素(padding)影响的时候,行内框等于内容区域

行框:本行内所有元素中行高最大的值

元素对行高的影响

对于行内元素如em、strong、span和等,其padding、margin、border-top、border-bottom 不会增加行高。padding会覆盖;margin将重置为0;border-top和border-bottom同样会覆盖。padding-left、padding-right、border-left和border-right可用。

img元素会影响行高


css中起高度作用的是 height和line-height

div.test{font-size:20px; line-height:0; background:#eee} // 高度为0

div.test2{ font-size:0; line-height:20px; background:#eee} // div高度为20pxml代码:

证明撑开div高度的是line-height而不是font-size

行内盒子模型

内联盒子/匿名内联盒子inline-boxes

行框盒子line-boxes  每一行就是一个“行框盒子”,每“行框盒子”由一个个“内联盒子组成”

包含盒子containing-box,由一行行的“行框盒子”组成

内容区域content-area,一种围绕文字看不见的盒子,大小与font-size大小有关


行高特性

1.行高的垂直居中性

、、在单行或多行或图片垂直居中实现上的应用

单行文字的垂直居中对齐:line-height值设置为height一样大小的值可以实现单行文字的垂直居中;height值可以省略

多行文字的垂直居中对齐要实现高度不固定的文字垂直居中使用padding就好了。对于高度固定的div,里面文字单行或多行显示,字体大小有大有小的情况怎么办呢?方法之一就是借助于line-height。

.line{line-height:150px; border:1px dashed #cccccc; padding-left:5px;}

.line span{display:-moz-inline-stack; display:inline-block; line-height:1.4em; vertical-align:middle;}

.line i{width:0; display:-moz-inline-stack; display:inline-block; vertical-align:middle; font-size:0;}


        这里是高度为150像素的标签内的多行文字,文字大小为12像素。
这里是第二行,用来测试多行的显示效果。


、图片的垂直居中

类似上面处理的方法,借助 i标签或伪元素

、使用缩放因子

line-height:150% // 先计算值,再继承下去

line-height:1.5 // 缩放因子 ,先继承,后计算值



你可能感兴趣的:(深入理解CSS行高line-height)