我无法弄清楚为什么内联元素会在某些浏览器中忽略line-height
(Chrome和Firefox会忽略它,但IE9不会忽略它)。
以下是一个例子:
<small style="line-height: 1; font-size: 26px;">Hello, World</small>
预期的结果是元素高度为26px,但是,它被设置为31px。如果我将元素的显示设置为块,则高度正确设置为26px。
我读到的所有东西都说应该设置为线高,所以我无法想出这个。这是我在W3C上读到的内容:
计算行框中每个内联级别框的高度。对于替换元素,内联块元素和内联表元素,这是其边距框的高度; 对于内联框,这是他们的“行高”。
答案 0 :(得分:4)
webkit检查员显示的内容(以及您在PhotoShop中测量的内容)是内容区域的尺寸。
请参阅http://www.w3.org/TR/CSS2/visudet.html#inline-non-replaced
内联元素[内联元素]的高度应基于字体,但此规范未指定方式。例如,UA可以使用em-box或字体的最大上升和下降...
不同的浏览器只是在这里使用不同的方法。有关说明,请参阅http://jsfiddle.net/ejqTD/1/。请注意webkit如何呈现更高的内容区域,但行高仍然正确。
在这种情况下内容区域超出了行,这是允许的:http://www.w3.org/TR/CSS2/visudet.html#leading
如果'line-height'指定的高度小于所包含框的内容高度,则填充和边框的背景和颜色可能会“渗透”到相邻的行框中。
很容易看出你是否考虑了行高&lt; 1:http://jsfiddle.net/KKMmK/