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 をサポートしていない場合)
(注: 2 倍のサイズのボタンが横に並ぶように、結果ペインの幅が十分であることを確認してください)。
ご覧のとおり、各黄色のボタンには明示的に 1.5 の行の高さが指定されています。これは、フォント内の奇妙なメトリックをオーバーライドする必要があり、実際に Chrome ではオーバーライドされます。コンテンツの高さは 24 ピクセル (2x サイズのボタンの場合は高さ 48 ピクセル) です。
しかし、Firefox と IE の両方で、結果はわずかに異なります。Firefox では、カスタム Web フォントを含むボタンが高さ 25 ピクセル (2 倍のサイズのボタンの場合は高さ 49 ピクセル) に拡大されます。IE ではサイズは問題ありませんが、2 倍のサイズのボタンの場合、私のフォントのボタンは 1 ピクセル上にオフセットされます。
このフォントには、少し奇妙な垂直メトリックがいくつかあります。一部のグリフは高さ 1.5em (ベースラインより下に 0.375em、上に 1.125em 拡張) です。上昇は 1024 (em は 1024 単位) で、下降は 0 です。OS/2 テーブルでは、すべての上昇と下降は、最大のグリフ (アセント 1152 およびディセント -384、または 'Win Descent' の場合は +384)。
私はひどいことをしていますか?このフォントを FontSquirrel @font-face ジェネレーターで実行しました。上記のサンプルに表示されている結果は、「垂直メトリックの修正」がオフになっています。その設定をオンにすると、同様に奇妙ですが、異なる結果が得られます。