HTML で文字色を変える方法
CSS の color プロパティを使います。要素のテキストの色を指定し、中にあるすべての要素は、自分で指定しない限り同じ色を継承します。
プロパティ名は color で、font-color や text-color ではありません。これらの名前は CSS に存在せず、黙って無視されます。
font タグを使わない理由
古いチュートリアルでは <font color="red"> が紹介されています。このタグは何年も前に HTML から削除されました。バリデーターはエラーとして指摘しますし、見た目がマークアップに混ざるので、色を変えるにはすべてのタグを手で直す必要があります。ブラウザが互換性のために今も表示しているので、動いているように見えるだけです。
<!-- obsolete -->
<font color="red">Warning</font>
<!-- use this -->
<span style="color: red;">Warning</span>
<!-- or better, a class you can change in one place -->
<span class="warning">Warning</span>
色の書き方
color にはすべての CSS の色の形式が使えます。よく使う 4 つは次のとおりです:
| 形式 | 例 | 補足 |
|---|---|---|
| 色の名前 | color: tomato; | 148 色の名前があり、手早く試すのに便利 |
| 16 進数 | color: #2563eb; | デザインファイルでいちばんよく使われる |
| rgb() | color: rgb(37 99 235); | 赤、緑、青を 0 から 255 で |
| hsl() | color: hsl(221 83% 53%); | 色相、彩度、明度。明るくしたり暗くしたりしやすい |
16 進数、rgb()、hsl() にはアルファチャンネルを付けて、#2563eb80 や rgb(37 99 235 / 50%) のように半透明の文字にできます。すべての形式は CSS の色のページ で解説しています。
ページ全体、見出し、セクションの色を変える
body に一度だけ色を指定して継承に任せ、必要な場所で上書きします:
白い背景には、純粋な #000000 より #111827 や #374151 のような柔らかい黒に近い色のほうが目に優しく、それでも黒に見えます。
リンクの色
リンクは継承の例外です。ブラウザが独自の青 (訪問済みなら紫) を付けるので、親の色は届きません。リンクに指定するか、リンクに継承させます:
:hover、:visited、:focus-visible を使えば状態ごとに色を変えられます。詳しくは hover のページ で解説しています。リンクが周りのテキストと同じ色なら、リンクだとわかるように下線を残しましょう。
読みやすい文字にする: コントラスト
文字色は組み合わせの半分にすぎず、もう半分は背景です。WCAG は、通常のテキストで 4.5:1 以上、大きなテキスト (約 24px、太字なら 19px) で 3:1 以上のコントラスト比を求めています。
いちばん多い失敗は、プレースホルダーのような薄い灰色の文字です。Chrome と Firefox の開発者ツールでは、文字色を調べるとコントラスト比が表示されます。
currentColor: 文字色を使い回す
currentColor は要素の color と同じ値になるキーワードです。枠線、アウトライン、インライン SVG のアイコンで使えるので、color を 1 か所変えるだけで文字と装飾の色がまとめて変わります:
よくある間違い
font-colorやtext-colorと書く。 プロパティはcolorです。<font>タグを使う。 廃止されています。CSS を使いましょう。- リンクが継承すると思う。
a { color: ... }かcolor: inheritを指定しましょう。 - 色だけで情報を伝える。 「赤い欄は必須です」は、赤を見分けられない読み手には伝わりません。テキストかアイコンを添えましょう。
- コントラストの低い灰色の文字。 比率を確認しましょう。本文は 4.5:1 以上です。
- 文字を薄くするのに
opacityを使う。 背景や子要素も含めて要素全体が薄くなります。薄い色かアルファ付きの色を使いましょう。
よくある質問
HTML で文字色を変えるには?
スタイルシートか style 属性で CSS の color プロパティを使います: <p style="color: #2563eb;">Blue text</p>。古い <font color> タグは廃止されています。
<font> タグはまだ使えますか?
とても古いページが動き続けるように、ブラウザは今も表示します。しかし HTML では廃止されていて、バリデーターはエラーとして報告します。代わりに CSS の color を使いましょう。
1 つの単語だけ色を変えるには?
単語を <span> で囲んで色を指定します: This is <span style="color: #dc2626;">red</span>.。その単語が重要だったり強調したかったりするなら、<span> の代わりに <strong> や <em> を使いましょう。
親に color を指定してもリンクの色が変わらないのはなぜですか?
リンクはブラウザのスタイルシートから独自の色を受け取るので、親の色を継承しません。リンク自体に指定する (a { color: #2563eb; }) か、a { color: inherit; } で親に従わせましょう。
CSS では font-color と color のどちらですか?
color です。font-color や text-color というプロパティはなく、ブラウザに無視されます。