我有一个在 FontForge 中构建的自定义图标字体。我遇到了一些不寻常的事情,因为它改变了 HTML 中块级元素的高度,但在 Chrome 中没有。
例子:
<html>
<head>
<style>
html { font-family: Arial, Helvetica, sans-serif; }
.double { font-size: 200%; }
div { margin-bottom: 1.5em; }
@font-face {
font-family: iconfont;
src: url('http://cheesefish.net/techchoicesymbol-webfont.eot');
src: url('http://cheesefish.net/techchoicesymbol-webfont.eot?#iefix') format('embedded-opentype'),
url('http://cheesefish.net/techchoicesymbol-webfont.woff') format('woff'),
url('http://cheesefish.net/techchoicesymbol-webfont.ttf') format('truetype'),
url('http://cheesefish.net/techchoicesymbol-webfont.svg#techchoicesymbolmedium') format('svg');
font-weight: normal;
font-style: normal;
}
.action {
display: inline-block;
line-height: 1.5;
background-color: orange;
padding: 0 0.5em;
}
.iconfont { font-family: iconfont; }
</style>
</head>
<body>
<div>
<span class="action"><span class="iconfont"></span> Go for a drive</span>
<span class="action">☃ Have a snowman</span>
</div>
<div class="double">
<span class="action"><span class="iconfont"></span> Go for a drive</span>
<span class="action">☃ Have a snowman</span>
</div>
</body>
</html>
直播: http: //jsfiddle.net/aGHxw/2/ 或http://cheesefish.net/symbol-test.html如果您的浏览器不支持 CORS
(注意:确保您的结果窗格足够宽,以便 2x 大小的按钮并排排列)。
如您所见,每个黄色按钮上都有明确的 1.5 行高。这应该会覆盖字体中任何奇怪的指标,实际上在 Chrome 中确实如此——内容是 24px 高(或者在 2x 大小的按钮的情况下是 48px 高)。
但在 Firefox 和 IE 中,结果略有不同。在 Firefox 中,带有我的自定义 webfont 的按钮放大到 25px 高(或者 2x 大小的按钮为 49px 高)。在 IE 中,大小还可以,但对于 2x 大小的按钮,带有我的字体的按钮向上偏移了一个像素。
这种字体有一些稍微奇怪的垂直度量;一些字形是 1.5em 高(在基线下方延伸 0.375em,在上方延伸 1.125em。上升为 1024(em 为 1024 个单位),下降为 0,在 OS/2 表中,所有上升和下降都设置为包含最大字形(上升 1152 和下降 -384,或者在“Win Descent”的情况下,+384)。
我在做什么可怕的事情吗?我已经通过 FontSquirrel @font-face 生成器运行了这个字体,你在上面的示例中看到的结果是关闭了“修复垂直度量”。打开该设置会产生同样奇怪但不同的结果。