--- title: unicode-range slug: Web/CSS/@font-face/unicode-range tags: - At-rule descriptor - CSS - CSS Fonts - CSS Property - Experimental - Layout - Reference - Web translation_of: Web/CSS/@font-face/unicode-range ---
{{cssref}}

unicode-range は CSS の記述子で、 {{cssxref("@font-face")}} で定義されたフォントから使用される特定の文字範囲を設定し、現在のページで使用できるようにします。ページがこの範囲内の文字を使用しない場合、フォントはダウンロードされません。少なくとも 1 つの文字を使用すると、フォント全体がダウンロードされます。

構文

/* <unicode-range> 値 */
unicode-range: U+26;               /* 単一の符号位置 */
unicode-range: U+0-7F;
unicode-range: U+0025-00FF;        /* 符号位置の範囲 */
unicode-range: U+4??;              /* ワイルドカードの範囲 */
unicode-range: U+0025-00FF, U+4??; /* 複数の値 */

単一の符号位置
単一の Unicode 符号位置。例: U+26.
符号位置の範囲
Unicode 符号位置の範囲。例えば、 U+0025-00FF は、 U+0025 から U+00FF の範囲内の全文字を含むこと意味します。
ワイルドカードの範囲
ワイルドカード文字を含む Unicode 符号位置の範囲。 '?' 文字を使用します。例えば、U+4??U+400 から U+4FF の範囲の全文字を含むことを意味します。

解説

この記述子の目的は、ブラウザーが特定のページのテキストコンテンツに必要なフォントリソースをダウンロードするだけで済むように、フォントリソースをセグメント化できるようにすることです。たとえば、ローカライズが多いサイトでは、英語、ギリシャ語、日本語のフォントリソースを個別に提供できます。英語版のページを閲覧しているユーザーには、ギリシャ語と日本語のフォントのフォントリソースをダウンロードする必要はなく、帯域幅を節約できます。

公式定義

{{cssinfo}}

形式文法

{{csssyntax}}

Using a different font for a single character

異なるフォントでスタイルを設定したいアンパサンド (アンド記号) を含む 1 つの {{HTMLElement("div")}} 要素を持つだけの HTML を作成します。明確にするために、テキストにはサンセリフフォントの Helvetica を使用し、アンパサンドにはセリフフォントの Times New Roman を使用します。

CSS において、1 つの文字だけを含んだ完全に別個の {{cssxref("@font-face")}} を定義していることが分かります。つまりこの文字だけがこのフォントでスタイルされることになります。これはアンパサンドを {{HTMLElement("span")}} 内に入れて別のフォントを適用することによっても可能ですが、それには余分な要素とルールセットが必要です。

HTML

<div>Me & You = Us</div>

CSS

@font-face {
  font-family: 'Ampersand';
  src: local('Times New Roman');
  unicode-range: U+26;
}

div {
  font-size: 4em;
  font-family: Ampersand, Helvetica, sans-serif;
}

結果

{{EmbedLiveSample("Using_a_different_font_for_a_single_character", 500,104)}}

仕様書

仕様書 状態 備考
{{SpecName('CSS3 Fonts', '#unicode-range-desc', 'unicode-range')}} {{Spec2('CSS3 Fonts')}} 初回定義

ブラウザーの互換性

{{Compat("css.at-rules.font-face.unicode-range")}}

関連情報