CSS行高line-height_html/css_WEB-ITnose
发现的过程:最近在学做一个网站的过程中,设置两行文字之间的行高时需要用到line-height,发现了这个问题,如下图:
解释
定义:line-height 属性设置行间的距离(行高),不能使用负值。该属性会影响行框的布局。在应用到一个块级元素时,它定义了该元素中基线之间的最小距离而不是最大距离。line-height 与 font-size 的计算值之差(行距)分为两半,分别加到一个文本行内容的顶部和底部。可以包含这些内容的最小框就是行框。
可能的值
值 | 说明 |
normal | 默认,设置合理的行间距。 |
number | 设置数字,此数字会与当前的字体尺寸相乘来设置行间距。相当于倍数 |
length | 设置固定的行间距。 |
% | 基于当前字体尺寸的百分比行间距。 |
inherit | 规定应该从父元素继承 line-height 属性的值。 |
1.line-height:1
例如:
123
意思是行间距为当前字体尺寸30px*1,即行间距等于字体尺寸30px。
此时结果如下图:
2.line-height:1px
例如:
123
意思是行间距为1px,此时上下两行字的行间距就是1px,接近于重合。结果如下图:
3.line-height:100% 行高是可以继承的,但并不是简单的copy父元素行高,继承的是计算得来的值。
例如:
123
结果如下图:
按照一般想法,既然line-height可以继承,那么p元素的行高也是100%,可结果并不如此。这就是继承计算的结果,如果父元素的line-height有单位(px,%),那么继承的值则是换算后的一个具体的px级别的值,在本例中就是10px*100%=10px,而字体大小为30px,所以发生重叠。
而如果属性值没有单位,则浏览器会直接继承这个“因子(数值)”,而非计算后的具体值,此时它的line-height会根据本身的font-size值重新计算得到新的line-height 值,如例二所示。
4.line-height:normal
normal的情况为默认值,浏览器会计算出“合适”的行高,多数浏览器(Georgia字体下)取值为1.14,即为font-size的1.14倍,如果未设定font-size,那既是基准值16px的1.14倍。单独讨论这个取值是没什么意义的,因为normal和具体的数值相比,会因为字体的不同而不同。如果是项目需要,还是给定一个值好一些。
参考资料:
[1]“CSS行高—line-height ”,,(2013/8/4)
[2] Danilo,https://www.zhihu.com/question/21786347/answer/19349031,(2013/10/12)
推荐阅读
-
【温故知新】CSS学习笔记(行高简介)
-
jquery 截取datatable里面td内容太多的显示省略号,点击行时候,行高度变高,显示全部内容_html/css_WEB-ITnose
-
HTML表单中如何输完一行按回车跳到下一行_html/css_WEB-ITnose
-
HTML表单中如何输完一行按回车跳到下一行_html/css_WEB-ITnose
-
给angular的repeat列表的行操作加上动效遇到的问题总结_html/css_WEB-ITnose
-
上面的这个程序,在点击删除表格中的一行时,不能随意删除,不管点击哪个都是从上往下删除,请帮忙让他能够点击每行后的删除,删除该行~谢谢_html/css_WEB-ITnose
-
div+css:一行布局三(多)个版块_html/css_WEB-ITnose
-
CSS让2个DIV在同一行显示的解决方法_html/css_WEB-ITnose
-
dl dt dd一行两列并且每一组dl之间自动换行_html/css_WEB-ITnose
-
和在一行,为什么改变img的margin-top,a的位置也变了?_html/css_WEB-ITnose