Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【CSS Modules】font-familyアットルール記述子の使い方

font-familyアットルール記述子の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

font-familyプロパティは、@font-faceアットルールにおいて、ウェブページで利用するカスタムフォントに一意のファミリー名を定義し、それを保持するプロパティです。このプロパティは、システムエンジニアがウェブサイトに特定のフォントを組み込む際に、そのフォントを識別し、後からCSSで参照するための重要な役割を果たします。具体的には、@font-faceアットルール内でfont-familyディスクリプタとして利用され、フォントファイルと紐付けられたファミリー名を指定します。

例えば、独自にデザインされた「MyCustomFont.woff2」というフォントファイルをウェブサイトで使用したい場合、@font-faceルール内でfont-family: "MyCustomFont";と記述することで、そのフォントに「MyCustomFont」という名前を割り当てることができます。この名前は、その後、HTML要素に対して適用するCSSのfont-familyプロパティの値としてfont-family: "MyCustomFont", sans-serif;のように指定することで、ブラウザが定義されたカスタムフォントを適切に読み込み、表示するために利用されます。これにより、ブラウザに標準で搭載されていない多様なデザインのフォントをウェブサイトで利用できるようになります。

適切なフォントファミリー名を定義することは、ウェブページの視覚的な一貫性を保ち、ブランドイメージを表現するために不可欠です。また、指定するファミリー名は、他のフォント名と重複しないように注意し、大文字・小文字の区別にも配慮することが推奨されます。

公式リファレンス: font-family

構文(syntax)

1セレクタ {
2  font-family: "特定のフォント名", "別のフォント名", ジェネリックファミリー;
3}

引数(parameters)

引数なし

引数はありません

戻り値(return)

戻り値なし

戻り値はありません

サンプルコード

CSS font-family でフォントを指定する

1/*
2 * font-familyプロパティは、要素に適用するフォントの優先順位リストを指定します。
3 * 複数のフォント名をカンマ区切りで列挙することで、ユーザーのシステムにインストールされている
4 * フォントの中から、優先度の高い順に利用可能なフォントを探して適用します。
5 * 最終的には、環境に依存しない汎用フォントファミリー(sans-serif, serif, monospaceなど)
6 * を指定することで、どの環境でも最低限の表示を保証することが推奨されます。
7 */
8body {
9  /*
10   * 1. 日本語フォントの指定例 (Windows環境で一般的な「メイリオ」とMac環境で一般的な「ヒラギノ角ゴ ProN W3」)
11   *    これらのフォントが存在しない場合、次に指定されたフォントが試されます。
12   */
13  font-family: "メイリオ", Meiryo, "Hiragino Sans", "ヒラギノ角ゴ ProN W3",
14    /*
15     * 2. 欧文ウェブセーフフォントの指定例 (多くのOSで標準的に利用できるフォント)
16     *    特定の日本語フォントが見つからなかった場合、これらの欧文フォントが試されます。
17     */
18    Arial, Helvetica,
19    /*
20     * 3. 汎用フォントファミリー (最終的なフォールバック)
21     *    上記全てのフォントが見つからなかった場合に、ブラウザが用意している
22     *    sans-serif(ゴシック体)のフォントが適用されます。
23     *    これにより、どのような環境でもテキストが表示されることが保証されます。
24     */
25    sans-serif;
26}

font-familyプロパティは、ウェブページ上でテキストが表示される際のフォントの種類を指定するために使用されます。このプロパティには引数や戻り値はありません。複数のフォント名をカンマで区切って指定すると、リストの左側にあるフォントから順に、閲覧者のシステムにそのフォントがインストールされているかを確認し、最初に利用可能なフォントがテキストに適用されます。

サンプルコードでは、この優先順位の考え方に基づき、複数のフォントが指定されています。まず、"メイリオ""ヒラギノ角ゴ ProN W3"といった特定の日本語フォントが指定されており、これらのフォフォントが利用できる環境では、意図した日本語表示が期待できます。もしこれらの日本語フォントが見つからない場合、次にArialHelveticaといった、多くのオペレーティングシステムで標準的に利用できる欧文フォントが試されます。

そして、リストの最後にはsans-serifのような汎用フォントファミリーが指定されています。これは、上記で指定されたどの具体的なフォントも利用できない場合に、ブラウザが用意している一般的なゴシック体フォントを適用するためのものです。このように汎用フォントファミリーを最後に指定することで、閲覧環境に左右されずに、どのような状況でもテキストが最低限表示されることが保証され、ウェブサイトのアクセシビリティ向上に繋がります。

font-familyプロパティは、要素に適用するフォントの優先順位リストを指定します。複数のフォント名をカンマ区切りで列挙することで、左から順にユーザーの環境にあるフォントを探して適用します。特に日本語フォントや特定のデザインフォントはユーザーのOSに依存するため、存在しない可能性があります。フォント名にスペースが含まれる場合は、必ず引用符で囲んでください。最終的にはsans-serifserifのような汎用フォントファミリーを必ず指定し、どの環境でも最低限のテキスト表示を保証することが非常に重要です。フォント名は正確に記述しないと適用されませんので、スペルミスにも注意しましょう。

CSS font-family 推奨設定例

1/*
2 * システムエンジニアを目指す初心者向け: font-family プロパティの推奨設定例
3 *
4 * font-familyは、HTML要素に表示するテキストのフォントを指定するCSSプロパティです。
5 * 複数のフォント名をカンマで区切って指定すると、「フォントスタック」が作成されます。
6 * ブラウザはリストの先頭から順に、ユーザーのシステムで利用可能なフォントを適用しようとします。
7 * どのフォントも利用できない場合に備え、最後に`sans-serif`のような一般的なフォントタイプを指定するのが推奨されます。
8 *
9 * このサンプルは、主要なOSのシステムフォントを優先しつつ、
10 * ウェブ上で広く利用され、読みやすいとされる一般的なフォントを組み合わせた推奨スタックです。
11 */
12body {
13  font-family: -apple-system,         /* Apple製品 (macOS, iOS) のシステムフォントを優先 */
14               BlinkMacSystemFont,    /* ChromeやEdge (Blinkエンジン) でのシステムフォント */
15               "Segoe UI",           /* Microsoft Windows のシステムフォント */
16               Roboto,                /* Androidデバイスや一部のウェブサービスで利用されるフォント */
17               "Helvetica Neue",      /* macOSで広く使われる伝統的なフォント */
18               Arial,                 /* 多くのOSに標準搭載されている汎用的なフォント */
19               "Noto Sans",           /* Googleが開発した多言語対応フォント */
20               sans-serif;            /* どのフォントも利用できない場合の、一般的なゴシック体フォントの総称 */
21}

font-familyプロパティは、HTML要素に表示するテキストのフォントを指定するためのCSSプロパティです。このプロパティを設定することで、ウェブページのデザインに合わせてテキストの視覚的なスタイルを調整することができます。

複数のフォント名をカンマで区切って指定すると、「フォントスタック」と呼ばれるリストが作成されます。ブラウザは、このリストの先頭から順に、ユーザーのシステムで利用可能なフォントを探して適用しようとします。これにより、特定のフォントがユーザーの環境にインストールされていない場合でも、代替のフォントで表示されるよう、柔軟に対応することが可能です。どのフォントも利用できない場合に備え、リストの最後にsans-serif(ゴシック体)やserif(明朝体)のような一般的なフォントタイプを指定することが強く推奨されます。

このサンプルコードでは、body要素に対してフォントスタックを設定しています。-apple-systemBlinkMacSystemFontはApple製品やGoogle Chromeなどのブラウザで使用されるシステムフォントを優先し、"Segoe UI"はWindowsのシステムフォント、RobotoはAndroidデバイスやウェブサービスで広く利用されるフォントです。これらは主要なOSのフォントをカバーしつつ、Arial"Noto Sans"といった汎用性の高いフォントを組み合わせることで、どの環境でも読みやすい表示を目指しています。

font-familyはCSSのプロパティであるため、関数のように引数を直接受け取ったり、特定の戻り値を返したりするものではありません。指定されたフォント名のリスト自体が、ブラウザがフォントを選択する際の規則として機能します。

font-familyプロパティは、テキストのフォントを複数指定する際、優先順位を考慮して記述することが重要です。カンマで区切られたフォント名は左から順に評価され、ユーザーの環境で利用可能な最初のフォントが適用されます。特に、スペースを含むフォント名は "Segoe UI" のように引用符で囲む必要がありますので注意してください。

どのフォントも利用できない場合に備え、必ず最後に sans-serifserif といった一般的なフォントタイプを指定するよう心がけてください。これにより、意図しない表示崩れを防ぎ、ユーザー体験の安定性を確保できます。この設定は、ユーザーのデバイス環境に依存するため、指定したフォントが必ずしもすべての環境で表示されるわけではない点も理解しておくことが大切です。

関連コンテンツ

関連プログラミング言語