ここには2つの別々の問題があります。
- 数値ではなくfont-weightキーワードの使用。
- 必要に応じて、IE8(およびそれ以前のバージョン)をサポートします。
キーワード
font-weightキーワードを使用する場合の問題は、とがlighter
andbolder
のような絶対値ではなく(それぞれ常に400と700)、親要素の確立された太さ(100明るいまたは暗い)に関連していることです。絶対値であるかのように扱うことができない場合があります。normal
bold
lighter
bolder
@HTMLDeveloperと@Christophが提案したように、キーワードではなく数値を使用することはこれに対する簡単な解決策であり、それ自体で適切な解決策になる可能性があります(IE8のサポートが必要ない場合)。
@font-face {
font-family: "santana";
src: url("data:font/ttf;base64,AAEAAAALAI....") format('truetype');
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "santana";
src: url("data:font/ttf;base64,AAEAAAALAI....") format('truetype');
font-weight: 700;
}
@font-face {
font-family: "santana";
src: url("data:font/ttf;base64,AAEAAAALAI....") format('truetype');
font-weight: 900; /* or whatever weight you need to use for "bolder" */
}
IE8以前
font-family
一部のブラウザでは、複数のウェイトまたはスタイルが同じ名前に関連付けられている場合に表示の問題が発生します。
私が知っている特定の問題:(他にもあるかもしれません)
- 複数のウェイトがフォントファミリ名にリンクされている場合、IE8には表示の問題があります。
- 4つを超えるウェイトまたはスタイルがフォントファミリ名にリンクされている場合、IE6/7/8には表示の問題があります。
font-family
解決策は、フォントのバリエーションごとに一意の名前を使用することです。
@font-face {
font-family: "santana";
src: url("data:font/ttf;base64,AAEAAAALAI....") format('truetype');
}
@font-face {
font-family: "santana-bold";
src: url("data:font/ttf;base64,AAEAAAALAI....") format('truetype');
}
@font-face {
font-family: "santana-bolder";
src: url("data:font/ttf;base64,AAEAAAALAI....") format('truetype');
}
このアプローチは、Typekitなどのフォントサービスで一般的に使用されています。多種多様なブラウザ(または少なくともIE8)のサポートが必要な場合、これはフォントを埋め込むときに支払う必要のある価格の1つと見なすことができます。