是否有一种与字体无关的方法可以将 em 转换为字体高度?
Is there a font independent way to translate from em to font height?
运行 以下代码片段:
span.text {
border: 1px solid blue;
line-height: 1;
}
span.box {
display: inline-block;
border: 1px solid red;
height: 1em;
}
span.true-height {
display: inline-block;
height: 1.2em;
width: 1em;
background: green;
vertical-align: text-bottom;
}
<span class="text">This box is taller than 1em</span>
<span class="box">1em</span>
<span class="true-height"></span>
您会注意到两个跨度的高度不同。仅包含文本(line-height: 1
)的跨度高于 1em。
“真实字体高度”和em的差异在字体之间是否一致?在上面的示例中,“真实字体高度”是 1.2em
。这是一种产品字体文件格式,还是只针对这一种字体?
没有。 CSS 规范指出,对于“正常”的初始行高,它 "Tells user agents to set the used value to a "reasonable" value based on the font of the element"
这意味着浏览器使用多种字体规格来选择文本的行高。不仅字体之间会有所不同,而且不同的浏览器可能会为相同的字体选择不同的行高。
运行 以下代码片段:
span.text {
border: 1px solid blue;
line-height: 1;
}
span.box {
display: inline-block;
border: 1px solid red;
height: 1em;
}
span.true-height {
display: inline-block;
height: 1.2em;
width: 1em;
background: green;
vertical-align: text-bottom;
}
<span class="text">This box is taller than 1em</span>
<span class="box">1em</span>
<span class="true-height"></span>
您会注意到两个跨度的高度不同。仅包含文本(line-height: 1
)的跨度高于 1em。
“真实字体高度”和em的差异在字体之间是否一致?在上面的示例中,“真实字体高度”是 1.2em
。这是一种产品字体文件格式,还是只针对这一种字体?
没有。 CSS 规范指出,对于“正常”的初始行高,它 "Tells user agents to set the used value to a "reasonable" value based on the font of the element"
这意味着浏览器使用多种字体规格来选择文本的行高。不仅字体之间会有所不同,而且不同的浏览器可能会为相同的字体选择不同的行高。