CSS ・ 文字・フォント

Webフォント

Webフォントの仕組みと使い方

Webサイト上で CSS を使って、自由にフォントを表示するための技術です。閲覧している人のパソコンやスマホにそのフォントが入っていなくても、同じ書体で表示できます。

使い方
link で読み込み、font-family で指定
代表的なサービス
Google Fonts(無料)・Adobe Fonts など
種類
有料Webフォント・無料Webフォント
01

サンプルコード

HTML
1<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&amp;display=swap">
2<p class="web">Webフォント(Noto Sans JP)で表示</p>
3<p class="local">端末のフォント(serif)で表示</p>
CSS
1.web {
2 font-family: "Noto Sans JP", sans-serif;
3 font-weight: 700;
4}
5.local {
6 font-family: serif;
7}
02

実行結果

ブラウザでの表示Google Fonts から Noto Sans JP を読み込んで表示しています
03

解説

Webフォントとは、Webサイト上で CSS を使って自由にフォントを表示するための技術 です。フォントのデータをサーバーから読み込むので、閲覧している人の環境(端末に入っているフォント)に依存しません。

見出しなどを画像にしなくても、デザイン通りの書体を 文字のまま 表示できます。文字なので検索エンジンにも内容が伝わり、SEO 的に有利 になるメリットがあります。

Webフォントには 有料Webフォントと無料Webフォント があります。クライアントの予算に合わせて提案します。

使い方は、link タグでフォントを読み込み、font-family でそのフォント名を指定するだけです。上の例では Google Fonts から Noto Sans JP を読み込んでいます。

04

応用例・注意点

Google Fonts の実装方法

手順説明
1. フォント名を検索Google Fonts(fonts.google.com)でフォント名を検索し、使いたいフォント(例:Noto Sans Japanese)をクリックする
2. Get fontフォントのページ右上の「Get font」をクリックする
3. Get embed codeフォントを選ぶと「1 font family selected」の画面になるので、右側の「Get embed code」をクリックする
4. link と font-family を貼る「Web」タブで link タグをコピーして HTML の head に貼り、font-family の1行をコピーして CSS ファイルに貼る

Google Fonts の link を head に貼る

手順4で「Embed code in the <head> of your html」の欄からコピーしたコードです。preconnect の2行は読み込みを速くするためのものなので、そのまま一緒に貼ります。

HTML
1<head>
2 <meta charset="UTF-8">
3 <link rel="preconnect" href="https://fonts.googleapis.com">
4 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
5 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&amp;display=swap">
6 <link rel="stylesheet" href="style.css">
7</head>

読み込んだフォントを使う

読み込んだあとは、普通のフォントと同じように font-family に名前を書きます。最後に総称ファミリーも書いておきます。

CSS
1body {
2 font-family: "Noto Sans JP", sans-serif;
3}

太さを範囲で読み込む(Full axis)

Full axis のままコピーすると、太さが wght@100..900 のような範囲で書かれます。.. は「100から900まで全部」という意味です。使う太さが決まっているなら、One value を選ぶか wght@400;700 のように ; 区切りで必要な太さだけにすると軽くなります。

HTML
1<!-- 100〜900 の太さを全部読み込む(Full axis) -->
2<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&amp;display=swap">
3
4<!-- 400 と 700 だけ読み込む -->
5<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&amp;display=swap">

@import で CSS ファイルから読み込む

Embed code の画面で <link> ではなく @import を選ぶと、CSS ファイルの先頭に書くコードが表示されます。HTML を触れないときに使えますが、link より読み込みが遅くなりやすいので、基本は講義どおり link を使います。

CSS
1@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap');
2
3body {
4 font-family: "Noto Sans JP", sans-serif;
5}

注意点

  1. 01日本語に対応した Webフォントは、英語のフォントに比べるとまだ少ないです。
  2. 02日本語のフォントは文字数が多くファイルが大きいため、表示速度が遅くなる ことがあります。使う太さ(wght)を必要なものだけに絞って読み込みます。
  3. 03サービスによっては、PV数・ドメイン数・使える書体数など 利用上の制限 があります。案件で使う前に利用規約を確認します。
  4. 042行目の preconnect に付いている crossorigin は消さずにそのまま貼ります。フォントのファイルを別のサーバー(fonts.gstatic.com)から取ってくるために必要な属性です。
  5. 05@import は CSS ファイルの一番上(ほかのルールより前)に書かないと効きません。
  6. 06Webフォントが読み込めなかったときのために、font-family の最後には sans-serif などの総称ファミリーを書いておきます。
05

Embed code 画面の見方・メリットとデメリット・サービス一覧

Embed code 画面の見方

「Get embed code」をクリックすると Embed code の画面になります。たくさん表示されますが、Webサイトで使うのは次の部分だけです。

画面の表示どうするか
Web / Android / iOS / Flutter のタブWeb を選ぶ(ほかはアプリ用)
<link> / @import の選択<link> を選んだままにする(@import は CSS に書く別の方法)
Embed code in the <head> of your htmlこの欄の link タグ(3行)を Copy code でコピーし、HTML の head に貼る
Weight:Full axis / One valueFull axis は 100〜900 の太さを全部、One value は1つの太さだけ読み込む。日本語フォントは重いので、使う太さが決まっていれば絞る
CSS class for a variable style見本のうち font-family: "Noto Sans JP", sans-serif; の1行だけを CSS ファイルに貼る。<uniquifier> や <weight> は自分で置き換える前提の見本なので、そのまま貼らない

太さの書き方(URL の wght)

  • wght@100..900:.. は範囲。100から900までのすべての太さ(可変フォント)
  • wght@400;700:; は区切り。400と700の2つの太さだけ

メリットとデメリット

内容
メリット閲覧しているユーザーの 環境に依存しない(端末にフォントが入っていなくても同じ書体で表示できる)
メリット画像ではなく 文字で記述できる ため、SEO 的に有利
デメリット日本語対応の Webフォントがまだ少ない
デメリット表示速度が遅くなる 場合がある
デメリット利用上の制限 がかかることがある(PV数・ドメイン数など)

Webフォントサービス一覧

サービス名提供会社利用料フォントの種類
Google FontsGoogle無料1,700種類以上
Adobe FontsAdobeCreative Cloud 製品ユーザーは 0円。※案件で使う場合は、クライアントごとに契約が必要(有料)500を超える日本語フォントを含む 20,000以上
TypeSquareモリサワ月契約 0円(PV数 1千PV/月・利用可能書体数 1・利用可能ドメイン数 1)。※いくつかプランあり2,000種類以上
FONTPLUSSBテクノロジー株式会社月額 1,100円〜。PV に応じて変動。半年無料のトライアルあり600種類以上
DynaFontダイナコムウェア株式会社11,000円/100万PV1,300種類以上
FontStream株式会社コム・クエスト1サイトあたり 550円/30日。PV数・フォント使用数の制限はなし。初回30日間無料80種類以上

料金について

  • 料金やフォントの数は講義時点の情報です。最新の内容は各サービスの公式サイトで確認してください。
  • 無料で始めるなら Google Fonts が定番です。日本語なら Noto Sans JP(ゴシック)や Noto Serif JP(明朝)がよく使われます。
↑↓ 選択Enter 移動Esc 閉じるCtrl K⌘K で開閉