line-height 的值分别取 [2, 2em, 200%] 有什么区别?
Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 550
Author 回答者: shfshanyue
代码见: lineHeight - codepen
line-height
是相对于元素自身的字体大小来取值,但同时会被继承。在实际工作中,取值 2em
或者 200%
有可能遇到未预测的内容。
比如:
- 父元素:
fontSize: 18px; lineHeight: 1.5em(27px,150% 同理);
,它的 lineHeight 计算下来为 27px,会被子元素继承 - 子元素:
fontSize: 30px
,子元素的 lineHeight 被继承为 27px,出现问题
以下为演示代码,见: lineHeight - codepen
<div class="box green">
<h1>lineHeight: 1.5; 这是没有问题的框框</h1>
lineHeight: 1.5; 这是没有问题的框框 lineHeight: 1.5; 这是没有问题的框框
</div>
<div class="box red">
<h1>lineHeight: 1.5em; 这是有问题的框框</h1>
lineHeight: 1.5em; 这是有问题的框框 lineHeight: 1.5em; 这是有问题的框框
</div>
<div class="box orange">
<h1>lineHeight: 150%; 这是有问题的框框</h1>
lineHeight: 150%; 这是有问题的框框 lineHeight: 150%; 这是有问题的框框
</div>
.green {
line-height: 1.5;
border: solid limegreen;
}
.red {
line-height: 1.5em;
border: solid red;
}
.orange {
line-height: 150%;
border: solid orange;
}
h1 {
font-size: 30px;
}
.box {
width: 18em;
display: inline-block;
vertical-align: top;
font-size: 16px;
}