深入理解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;}

<p class="line">

        <span style="font-size:12px"> 这里是高度为150像素的标签内的多行文字,文字大小为12像素。<br/>这里是第二行,用来测试多行的显示效果。</span><i></i>

</p>

、图片的垂直居中

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

、使用缩放因子

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

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



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,786评论 1 92
  • 深入理解傅里叶变换Mar 12, 2017 这原本是我在知乎上对傅立叶变换、拉普拉斯变换、Z变换的联系?为什么要进...
    价值趋势技术派阅读 5,804评论 2 2
  • 本课来自http://www.imooc.com/learn/9请不要用作商业用途。 HTML5 HTML介绍 H...
    PYLON阅读 3,299评论 0 5
  • 以下文章是我在网上收集的内容,为了记录自己的学习以及为了以后不到处找而记录下来,如果对你有用,请感谢写这些文章的前...
    DCbryant阅读 949评论 0 2
  • 在电脑上想安装谷歌流览器?查chrome,有很多网页,有chrome桌面版,chrome镜像站,点点进去都下载不了...
    吴黄龙本人阅读 579评论 0 0