我想出的答案:
规范支持的第一个事实:
当你的行高大于字体大小时——你通常看到的——这很容易。取行高,减去字体大小,除以 2。将结果应用到“字形框”的顶部和底部,就是这样。因此,如果您的字体大小为 14px,行高为 16px:
16 像素 - 14 像素 = 2 像素 2 像素 / 2 = 1 像素
在“字形框”上方添加 1px,在其下方添加 1px。该框的高度为 16 像素,并且正如预期的那样成为父容器的高度(假设在这种情况下,其中只有一个行框)。
当 line-height 小于 font-size (我们的例子)时,事情变得更加棘手。让我们对 54px 的字体大小和 0 的行高使用相同的公式。
0-154px = -154px(规范允许在这里使用负值,所以我们没关系)
-154 像素 / 2 = -77 像素
因此,我们的字体大小为 154 像素……还有一些您需要了解的内容。字体既有从基线到顶部的距离,也有从基线到底部的距离。很简单。规范称第一个高度(A)和第二个深度(D)。所以 A+D = 从上到下的距离。
现在这就是我认为在我在问题中提出的案例中正在发生的事情。这是我从“我的摆弄”而不是从规范中得出的结论(因为我在那里找不到它)。
让我们继续我们的公式。
我们从 line-height 和 font-size 之差的结果中得到 -77px。
我们的字体大小是 154px。
现在我们必须在顶部添加-77px,在底部添加-77px。添加负数就是减去 - 所以我们实际上减去了 77px。
这用一张图更容易解释。
所以,是的,这就是我相信高度的来源。至少和它有关。