【问题标题】:Is line-height: 1.4 the same as line-height: 140%?line-height: 1.4 是否与 line-height: 140% 相同?
【发布时间】:2020-05-23 04:06:33
【问题描述】:

使用 1.4 的 line-height 值是否与使用 140% 的 line-height 值相同?换句话说,我们可以认为无单位值与百分比值相同吗?

【问题讨论】:

  • 每行的高度变为 1.4 行,因此根据您的字体大小,它是原始高度的 140%。这与height:140%; 不同,因为% 的宽度和高度基于父元素。 line-height 不基于父元素,所以line-height:140%;line-height:1.4; 相同。
  • @Hermes 请不要改变问题的意思!注意您的修改

标签: html css line-height


【解决方案1】:

由于继承关系,完全相同1不完全相同,这里是一个简单的例子。

.box {
  display: inline-block;
  border: 1px solid green;
}

.box > span {
  font-size: 50px;
  border: 1px solid red;
}

.box > span > span{
  font-size: 50%;
  border: 1px solid red;
}
<div class="box">
  <span style="line-height:1.8;"><span>some text here</span></span>
</div>

<div class="box">
  <span style="line-height:180%;"><span>some text here</span></span>
</div>

在第一种情况下,最后一个 span 的值 line-height 等于 45px,即 1.8 * (50% of 50px),其中 1.8 是从其父级继承的 line-height 值。在第二种情况下,最后一个 span 的值将等于 90px,即 180% of 50px,其中整个值是从其父级继承的。

换句话说,第一个跨度获得1.8,然后将考虑其font-size,而第二个跨度将从其父级获得计算值,font-size 不会改变任何内容。

&lt;number&gt;

属性的使用值是这个数字乘以元素的字体大小。负值是非法的。 计算的值与指定的值相同。

&lt;percentage&gt;

属性的计算值是这个百分比乘以元素的计算字体大小。负值是非法的。 ref

请注意,在这两种情况下,计算的值是不同的,这使得两种情况下的继承不同。

为了更好地说明百分比情况:

.box {
  display: inline-block;
  border: 1px solid green;
}

.box > span {
  font-size: 50px;
  border: 1px solid red;
  line-height: 180%;
}

.box > span > span {
  border: 1px solid red;
}
<div class="box">
  <span ><span style="font-size:50px;">some text </span></span>
</div>

<div class="box">
  <span ><span style="font-size:50%;">some text </span></span>
</div>
<div class="box">
  <span ><span style="font-size:20px;">some text </span></span>
</div>

<div class="box">
  <span ><span style="font-size:5px;">some text </span></span>
</div>

如果您检查元素,您可以清楚地看到在所有情况下line-height 的值如何等于90px

参考这个问题来理解为什么盒子高度越来越大:Why would the height increase with a smaller font size?

如果我们考虑无单位值,我们会得到不同的结果:

.box {
  display: inline-block;
  border: 1px solid green;
}

.box > span {
  font-size: 50px;
  border: 1px solid red;
  line-height: 1.8;
}

.box > span > span {
  border: 1px solid red;
}
<div class="box">
  <span ><span style="font-size:50px;">some text </span></span>
</div>

<div class="box">
  <span ><span style="font-size:50%;">some text </span></span>
</div>
<div class="box">
  <span ><span style="font-size:20px;">some text </span></span>
</div>

<div class="box">
  <span ><span style="font-size:5px;">some text </span></span>
</div>

1如果我们忽略继承事实而只考虑我们明确设置line-height的元素,那么我们可以说两者是相同的,因为它们将为 关注 元素给出相同的结果。

【讨论】:

    【解决方案2】:

    看例子..

    <div style="background:green;">
      <p style="line-height:1.4;">This is demo Text. <br>This is demo Text.</p>
    </div>
    <div  style="background:green;">
      <p style="line-height:140%;">This is demo Text. <br>This is demo Text.</p>
    </div>

    【讨论】:

      猜你喜欢
      • 2021-07-14
      • 1970-01-01
      • 1970-01-01
      • 2022-01-26
      • 2017-09-04
      • 1970-01-01
      • 1970-01-01
      • 2012-08-05
      • 1970-01-01
      相关资源
      最近更新 更多