edubun
日本語

タイポグラフィ

WCAG は、1 行を 80 文字以内に、段落の中の行間を少なくとも 1.5 にすることをすすめています。この二つは CSS のプロパティで調整できます。

フォントを選ぶ

font-family には、コンマで区切ったフォントのリストを書きます。ブラウザーは、読者の端末で使える最初のフォントを使い、なければリストの次へ進みます。リストの最後にはかならず総称ファミリー(serif、sans-serif、monospace、system-ui)を書きましょう。そうすれば、何がインストールされていても無難な文字が表示されます。空白をふくむフォント名は、"Noto Sans KR" のように引用符で囲みます。system-ui はオペレーティングシステムの画面用フォントを使います。よくデザインされていて、すでに端末に入っており、多くの文字体系に対応しています。

body {
  font-family: system-ui, sans-serif;
  font-size: 1rem;          /* 16px unless the reader changed it */
  line-height: 1.6;         /* unitless: 1.6 times the font size */
  color: #222;
}
h1 { font-size: 2rem; font-weight: 700; line-height: 1.2; }
p  { max-width: 65ch; }     /* keeps lines a readable length */
.label { text-transform: uppercase; letter-spacing: 0.08em; }
小さいけれど完全な文字スタイルのひとそろい。

@font-face ルールで自分のサーバーからフォントファイルを読み込んだり、フォントサービスから読み込んだりすることもできます。Web フォントはページに独自の雰囲気を与えますが、一つひとつがダウンロードなので文字の表示が遅れます。韓国語、中国語、日本語のフォントは何千もの字形をふくむため、数メガバイトになることもあります。読み込む太さは必要な数だけにし、リストにはよい代わりのフォントを残しておきましょう。

サイズ、太さ、行の高さ

font-size は大きさを決めます。「色と単位」の単元で説明したように、rem を使うと文字が読者の設定に合わせて変わります。font-weight は 100(細い)から 900(極太)まであり、400 がふつう、700 が太字です。キーワード normal と bold は 400 と 700 を表します。フォントにはデザイナーが作った太さしかないので、400 と 700 しかないフォントで 300 を指定すると、いちばん近い太さになります。

line-height は行と行の間隔を決めます。1.6 のように単位のない数だけを指定しましょう。すると、それぞれの要素のフォントサイズの 1.6 倍という意味になり、見出しにも小さな注記にも、それぞれに合った行間がつきます。24px のように単位つきの値は一度だけ計算され、固定の長さとして継承されるので、大きな見出しには狭すぎます。本文はふつう 1.4 から 1.7 のあいだが読みやすく、WCAG の達成基準 1.4.8 は段落の中で少なくとも 1.5 をすすめています。大きな見出しは 1.1 から 1.3 くらいに詰めたほうがきれいに見えます。

行の長さと文字そろえ

とても長い行は疲れます。次の行の頭にもどるとき、目がどこを読んでいたかわからなくなるからです。WCAG 1.4.8 は、1 行を 80 文字以内(中国語、日本語、韓国語は 40 文字以内)にすることをすすめています。これを守らせる簡単な方法は、段落に ch 単位で max-width を指定することです。たとえば max-width: 65ch とします。text-align は文字そろえを決めます。左から右へ書く言語の長い文章では left(または start)がいちばん読みやすく、center は短い見出しに向いています。justify は単語のあいだにふぞろいなすき間ができることがあります。

ちょっとした仕上げ

text-transform: uppercase は、HTML を変えずに文字を大文字で表示します。ソースはふつうのつづりのままなので、あとでスタイルを一か所で変えられます。MDN によると、大文字が長く続く文は、ディスレクシアの人をふくむ一部の人にとって読みにくくなります。短いラベルだけに使い、0.08em のように少し letter-spacing をつけましょう。text-decoration は線を引きます。underline、line-through、またはリンクの下線を消す none です(消すなら、リンクだとわかる別の目印を残しましょう)。もっと間隔が必要な読者は、あなたの指定を上書きすることがあります。WCAG 1.4.12 は、行の高さ 1.5、文字間隔 0.12em、単語間隔 0.16em、段落の間隔 2em にしてもページが使えることを求めています。文字が切れてしまう高さ固定のボックスは避けましょう。

フォントスタックフォントを順に試す。最後は総称ファミリー
総称ファミリーserif、sans-serif、monospace、system-ui
font-weight100 から 900。400 がふつう、700 が太字
単位のない line-height各要素のフォントサイズの何倍か
ch数字 0 の幅。行の長さに便利
@font-faceフォントファイルを読み込む
letter-spacing文字と文字の間隔。大文字の文に役立つ
  1. font-family のリストの最後に総称ファミリーを書くのはなぜですか?
    • 名前を書いたフォントがどれもインストールされていなくても、合うフォントが表示されるように
    • ページの読み込みが速くなるから
    • 文法で決まっているから
  2. font-weight: bold はどれと同じですか?
  3. font-size が 20px で line-height が 1.5 です。1 行の高さはいくつですか?
  4. line-height を単位なしで指定するのはなぜですか?
    • 各要素が自分のフォントサイズをかけるから
    • 単位が使えないから
    • 文字が太字になるから
  5. WCAG 1.4.8 がすすめる英語の文の行の長さは、最大でいくつですか?
  6. 行の長さを制限するのに便利な単位はどれですか?
    • ch
    • vh
    • deg
  7. text-transform: uppercase で変わるのは何ですか?
    • 文字の表示のしかただけ
    • HTML ファイルの中の文字
    • フォントファミリー
  8. font-size は 16px です。letter-spacing: 0.1em はいくつですか?
  9. 英語の長い段落でいちばん読みやすい文字そろえはどれですか?
    • left
    • center
    • justify
  10. 文字の入るボックスに高さを固定しないほうがよいのはなぜですか?
    • 読者が間隔や大きさを広げると、文字が切れてしまうから
    • CSS では高さを指定できないから
    • スクロールが遅くなるから
ポイント
  • font-family は、総称ファミリーで終わる代わりのフォントのリスト。
  • 本文の line-height は単位なしで 1.5 くらい。大きな見出しは詰める。
  • 行の長さは ch 単位の max-width で制限。大文字には少し letter-spacing を。
このコースの出典 (6)
  • W3C CSS Working Group specifications: CSS Snapshot 2025, Selectors Level 4, CSS Cascading and Inheritance Level 5, CSS Color Level 4, CSS Values and Units Level 4, CSS Box Model Level 3, CSS Box Sizing Level 3, CSS Fonts Level 4, CSS Flexible Box Layout Level 1, CSS Grid Layout Level 2, Media Queries Level 4 and Level 5 (w3.org/TR/, checked 2026-10-17)
  • MDN Web Docs, Learn web development: CSS styling basics and CSS layout, and the CSS reference (developer.mozilla.org/en-US/docs/Learn_web_development/Core/Styling_basics, .../Core/CSS_layout, developer.mozilla.org/en-US/docs/Web/CSS, checked 2026-10-17)
  • W3C, CSS history and CSS1 Recommendation of 17 December 1996 (w3.org/Style/CSS20/history.html, w3.org/press-releases/1996/css1-rec, checked 2026-10-17)
  • W3C WCAG 2.2, success criteria 1.4.3 Contrast (Minimum)
  • 1.4.8 Visual Presentation, 1.4.10 Reflow, 1.4.12 Text Spacing (w3.org/TR/WCAG22/, checked 2026-10-17)
  • every code exercise checked with a Playwright probe against a reference solution.

確認日: 2026-10-17