基本フォント サイズが常に 1em であり、.7em がその 70% になるという点で、EM はパーセンテージのように機能します (同様に、1.2em は基本フォント サイズの 120% に相当します)。これが適切に機能するためには、ドキュメントの本文にベース フォント サイズを定義する必要があります。実験の結果、font-size: 77%; であることがわかりました。すべてのブラウザーで適切な基本サイズを提供します (つまり、1em を「通常の」読み取り可能なサイズでレンダリングします)。使用するフォント ファミリに応じて、75% から 80% の間の他の値を試してください。また、相対的なフォント サイズは累積的に継承されることに注意してください。たとえば、次のようになります。
<style>
small { font-size: .8em; }
span.tiny { font-size: .8em }
</style>
<small>This text is 80% of base size where as
<span class="tiny">this text is 80% of 80% (or 64%) of base size</span>
</small>
これは、ボタン クラスに .7em のフォント サイズを指定するだけで目的を達成できるため、有利に機能します (ボタンのフォント サイズは常に親オブジェクトの 70% になります)。ハッピーコーディング!
2014 編集:
Root EM ユニットのブラウザー サポートが非常に優れていることを指摘する価値があります*。まだ使用していない場合は、検討する価値があります。ルート EM (rem) はルート (ドキュメント) のフォント サイズに関連付けられており、「通常の」EM とは異なり、ネストの影響を受けません。常にルート フォント サイズに関連しています。はほとんどem
のテキストのサイズ変更に非常に役立ちますが、ネストを考慮しているrem
ため、はマージンやパディングなど、ネストでサイズを変更したくない場合に最適です (これは、左マージンの位置ずれの一般的な原因です)。 、ただし、ルートフォント サイズと一緒にサイズを変更したい (通常はメディア クエリを使用)。html
EM と REM の詳細については、Design Shack を参照してください。
*) IE8 は、それをサポートしていない唯一の一般的なブラウザー (~5%) です。IE8 をサポートする必要がある場合は、宣言の前にピクセル単位で同等のサイズを含めるだけです。rem