1

私は em がフォント サイズの相対的なサイズであることを知っています。問題は、font-size * em が整数でない場合、font-size: 12px * 1.4em = 16.8px のように、結果は 16px または 17px ですか? そして、これに関する仕様はどこにありますか?

4

1 に答える 1

0

これは、CSS2.1 仕様で説明されています: http://www.w3.org/TR/CSS21/fonts.html#algorithm

テキストは次のとおりです。

4.'font-size' は、UA に依存する許容範囲内で一致する必要があります。(通常、スケーラブル フォントのサイズは最も近いピクセル全体に丸められますが、ビットマップ フォントの許容範囲は 20% にもなります。) 他のプロパティの「em」値などによるさらなる計算は、計算された値に基づいています。 「フォントサイズ」の。

あなたの質問に答えるために: 16.8pxは 17px にマッピングできますが、最終的にテキストをレンダリングする方法を決定するのはクライアント UA 次第です。ディスプレイに論理的なサブピクセルがある場合 (Apple の Retina ディスプレイのように、1 つの CSS ピクセルが実際には 2x2 の実ピクセルである)、非整数ピクセルのフォント サイズを使用できます。

編集:最新のユーザーエージェントはテキストを任意のサイズ、さらには非整数のピクセルサイズにレンダリングできるため、仕様を誤解していると思います。CSS2 仕様は 1998 年にさかのぼり、コンピューターのタイポグラフィが現在とは異なっていました (たとえば、IE5 でテキストを 12pt から 14pt の間でレンダリングするように強制できるとは思えません)。したがって、最新のブラウザーに 0.5px のテキストをレンダリングするように指示した場合、実際にはぼやけたブロブが得られるため、これはもはや問題ではないと思います。

于 2012-11-28T02:20:09.367 に答える