【问题标题】:Why are there extra 2px added to the line-height of a block container that contains inline-elements?为什么在包含行内元素的块容器的行高中添加了额外的 2px?
【发布时间】:2020-11-23 06:37:57
【问题描述】:

.link {
  background-color: red;
  font-size:16px;
}

.link span {
  background-color: royalblue;
  font-size:16px;
  line-height:16px;
}
<div class="link">
    <span>textg</span>
</div>

容器的 line-height 应该是 font-size 的大小,即 16px,而不是 18.4px。如果将 font-size 减小到 15px,则 line-height 变为 17.4px。这些 2.4px 是从哪里来的?

这是一张快照以防万一。

【问题讨论】:

标签: html css


【解决方案1】:

容器的 line-height 应该是 font-size 的大小,即 16px

不,不是。您永远不会设置父级的line-height,因此the default value 将应用在1.2 附近。在某些情况下它可能会有所不同,但在所有情况下肯定都大于1,因此大于定义的font-size

设置一个明确的line-height,你会得到你想要的:

.link {
  background-color: red;
  font-size:16px;
  line-height:1; /* or any pixel value */
}

.link span {
  background-color: royalblue;
  font-size:16px;
}
<div class="link">
    <span>textg</span>
</div>

不需要设置内联元素的line-height,因为它会从父元素继承。

还将line-height 设置为仅内联元素不会对其父元素执行任何操作,因为您有两个行高。定义 line box 最小高度的父级之一和可以只增加 line box 高度(超过最小值)并且永远不会减小它的子级之一。

.link {
  background-color: red;
  font-size:16px;
  line-height:16px;
  margin:10px;
}

.link span {
  background-color: royalblue;
  font-size:16px;
}
<div class="link">
    <span style="line-height:0;">I will do nothing !!</span>
</div>


<div class="link">
    <span style="line-height:40px;">I will make the parent bigger</span>
</div>

在内容由行内元素组成的块容器元素上,'line-height' 指定元素内行框的最小高度

在不可替换的内联元素上,'line-height' 指定用于计算行框高度的高度。 ref

【讨论】:

  • 所以,“告诉用户代理根据元素的字体将使用的值设置为“合理”的值”..这并不意味着块容器的行高正在默认情况下与字体大小相同?无单位数中的“1.2”与字体大小有关,对吗?所以,我想这就是差异的来源。
  • @Ihatecontrolfreaks 是的,行高需要大于 1(1xfont-size)以避免行之间的折叠效果。较小的 line-height 会使不同的行非常接近,因此我们使用 合理的 值,这将为我们在不同行中的文本之间提供足够的空间
  • 好的,谢谢。如果我可能再问一个问题,有点无关紧要,但是 - 当您想通过在链接元素内制作 img 来删除下行行空间时,这实际上不是无效代码吗?因为从技术上讲,行框不能包含块级框。所以,虽然它解决了这个特定问题,但我想知道这是否实际上无效?
  • @Ihatecontrolfreaks 它是有效的,并且有针对这种情况的规则:stackoverflow.com/a/758491/8620333
猜你喜欢
  • 2015-12-29
  • 2012-03-14
  • 1970-01-01
  • 2015-09-08
  • 2015-04-02
  • 2013-05-10
  • 2012-07-07
  • 2021-06-24
  • 1970-01-01
相关资源
最近更新 更多