line-height

line-height
所有浏览器都支持 line-height 属性。

1. 定义和用法
line-height 属性设置行间的距离(行高)。不允许使用负值。
2. 说明
该属性会影响行框的布局。在应用到一个块级元素时,它定义了该元素中基线之间的最小距离而不是最大距离。
line-height 与 font-size 的计算值之差(在 CSS 中成为“行间距”)分为两半,分别加到一个文本行内容的顶部和底部。可以包含这些内容的最小框就是行框。
原始数字值指定了一个缩放因子,后代元素会继承这个缩放因子而不是计算值。
3. 取值
normal:默认。设置合理的行间距。
number:设置数字,此数字会与当前的字体尺寸相乘来设置行间距。
length:设置固定的行间距。
% :基于当前字体尺寸的百分比行间距。
inherit:规定应该从父元素继承 line-height 属性的值。
行高还有一个特性,叫做垂直居中性。当块级元素中只有单行文字,我们可以使用line-height等于元素高度来使文字垂直居中。

 1 <style>
 2     .single_line {
 3         padding-left: 5px;
 4         margin-top: 10px;
 5         margin-bottom: 20px;
 6     line-height: 30px;
 7     border: 1px dashed #cccccc;
 8     }
 9 </style>
10 
11 <p class="single-line">
12     这是高度为30像素的单行文字
13 </p>

顺便提一下多行文字的垂直居中:要实现高度不固定的文字垂直居中使用padding就可以。而对于高度固定的div,里面文字单行或多行显示,且字体有大有小,其中一种方法就是使用line-height。

 1 <style>
 2     i {
 3         font-style: normal;
 4     }
 5     .multi-line {
 6         margin-top: 10px;
 7     padding-left: 5px;
 8         line-height: 150px;
 9         border: 1px dashed #cccccc;
10         font-size: 0;
11     }
12     .multi-line span {
13         display: inline-block;
14         line-height: 1.4em;
15         vertical-align: middle;
16     }
17     .inline-block {
18         display: inline-block;
19     }
20     .vm {
21         vertical-align: middle;
22     }
23 </style>
24 
25 <p class="multi-line">
26     <span style="font-size:12px;">这里是高度为150像素的标签内的多行文字,文字大小为12像素。<br>这里是第二行,用来测试多行的显示效果。</span>
27     <i class="vm inline-block">&nbsp;</i>
28 </p>
29 <p class="multi-line">
30     <span style="font-size:20px;">这里是高度为150像素的标签内的多行文字,文字大小为20像素。<br>这里是第二行,用来测试多行的显示效果。</span>
31     <i class="vm inline-block">&nbsp;</i>
32 </p>

4. line-height百分比:

line-height百分比在面试中可能经常问到。例如你知道line-height:120%和line-height:1.2的区别吗?

下面就说一下行高带单位和不带单位的区别,例如下面的例子:

line-height:26px; 表示行高为26个像素
line-heigth:120%;表示行高为当前字体大小的120%
line-height:2.6em; 表示行高为当前字体大小的2.6倍
带单位的行高都有继承性,其子元素继承的是计算值,如父元素的字体大小为14px,定义行高line-height:2em;则计算值为 28px,不会因其子元素改变字体尺寸而改变行高。(例如:父元素14px,子元素12px,那么行高就是28px,子元素虽然字体是12,行高还是父元素的行高)

line-height:2.6;表示行高为当前字体大小的2.6倍
不带单位的行高是直接继承,而不是计算值,如父元素字体尺寸为14px,行高line-height:2;他的行高为28px;子元素尺寸为12px,不需要再定义行高,他默认的行高为24px。(例如:子元素12px,他的行高是24,不会继承父元素的28)

原文地址:https://www.cnblogs.com/yeqrblog/p/6525666.html