CSS - @font-face

トップ > CSSリファレンス > @font-face

概要

ルール名@font-face
構文
@font-face { ... }
サポートhttps://caniuse.com/?search=%40font-face

説明

font-family で指定可能なWebフォントを定義します。

フォントファイルは通常、同じドメインのサーバからしかダウンロードできません。他のドメインからダウンロードするには、CORS を指定してください。

CSS
@font-face {
  font-family: 'my-font';
  src: url(../fonts/myfont.woff) format("woff");
}
* {
  font-family: 'my-font';
}

利用可能なフォント形式には下記などがあります。TTF や OTF よりも WOFF の方が Web に適して軽くなっています。IE 未対応ですが、WOFF2 の方が圧縮率が高いです。

形式説明フォーマット名拡張子サポート
TTFTrueType Fonttruetype.ttfほぼサポート。詳細
OTFOpenType Fontotf.otf .ttfほぼサポート。詳細
WOFFWeb Open Font Formatwoff.woffほぼサポート。詳細
WOFF2WOFF 2woff2.woff2IE以外。詳細
EOTEmbedded OpenTypeembedded-opentype.eotIEのみ。詳細
SVGScalable Vector Graphicssvg.svgSafariのみ。詳細
SVGZGzipped SVGsvg.svgzSafariのみ。詳細

@font-face のプロパティとして下記を指定できます。

プロパティ説明
font-familyCSSプロパティの font-family で指定するフォント名を定義します。
srcフォントファイルのURLを指定します。詳細後述
font-styleCSSプロパティの font-style と同じフォントスタイルを指定します。
font-weightCSSプロパティの font-weight と同じフォントの太さを指定します。
font-stretchCSSプロパティの font-stretch と同じフォントの横幅を指定します。
unicode-range適用する文字範囲を U+0026 や U+0041-005A のように指定します。カンマ区切りで複数指定できます。
font-feature-settingsCSSプロパティの font-feature-settings と同じフォントの特性を指定します。
font-variation-settingsCSSプロパティの font-variation-settings と同じフォントのバリエーションを指定します。
font-named-instanceフォントで定義されたインスタンス名を指定します。(→ 詳細)
font-displayフォントの読み込み中や読込失敗時の動作を指定します。詳細後述
font-language-overrideCSSプロパティの font-language-override と同じフォントの言語システムタグを指定します。
ascent-override代替フォントのアセンダー(ベースラインより上の部分の高さ)を調整します。詳細後述
descent-override代替フォントのディセンダー(ベースラインより下の部分の高さ)を調整します。詳細後述
line-gap-override代替フォントの行間を調整します。詳細後述

様々なフォントをダウンロードできるサイトがあります。

フォントの形式を変換できるサービスもあります。

使用例

CSS
@font-face {
  font-family: 'myfont';
  src: url(../fonts/example.woff) format("woff");
}
.test {
  font-family: 'myfont';
}
HTML
<div class="test">Hello world!</div>
表示
Hello world!

src プロパティ

フォントのURLを指定します。format() でフォーマットを指定します。下記の例では、ブラウザが woff をサポートしていればそれを、無ければ opentype を、それも無ければ Arial を選択します。

CSS
@font-face {
  font-family: myfont;
  src: url(https://example.com/fonts/myfont.woff) format("woff"),
       url(https://example.com/fonts/myfont.otf) format("opentype"),
       local(Arial);
}

font-display プロパティ

フォントの読み込み関して下記の時間があります。

font-display の値によって上記の時間を調整することができます。

CSS
@font-face {
  font-family: myfont;
  src: url(https://example.com/fonts/myfont.woff) format("woff");
  font-display: fallback;
}

ascent-override, descent-override, line-gap-override プロパティ

Webフォントが読み込まれるまでの間、代替フォントが表示されますが、代替フォントからWebフォントに切り替わる際にレイアウトがずれることがあります(CLS: Cumulative Layout Shift)。このずれを小さくするために代替フォントに対して下記をパーセント指定で調整することができます。

Jxck さんのサイトで詳しく説明されています。

Google Fonts

Google Fonts を用いれば @font-face を自分で記述しなくても Google が提供する Webフォントを利用することができます。

例えば、上記の中から Pacifico フォントを使用する場合、<head>~</head> の間に下記を加えます。

HTML
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Pacifico">

フォントに Pacifico を指定できるようになります。

CSS
.pacifico {
  font-family: Pacifico;
  font-size: 16pt;
  line-height: 30pt;
}
表示
Pacifico designed by Vernon Adams, Jacques Le Bailly, Botjo Nikoltchev, Ani Petrova.

リンク


Copyright (C) 1997-2023 杜甫々
初版:1997年7月27日、最終更新:2023年3月12日
http://www.tohoho-web.com/css/rule/font-face.htm