Menu

HTML と CSS で文字色を変える方法: color プロパティ

<font color> タグは廃止されていて、HTML の文字色は CSS の color プロパティで指定します。ページ全体、1 つの単語、リンク、見出しの色の変え方を、色の名前、16 進数、rgb を使って解説し、テキストを読みやすく保つ方法も紹介します。

このページのコードはエディタで実行できます - 編集してすぐに結果を確認できます。

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 というプロパティはなく、ブラウザに無視されます。

Coddy programming languages illustration

Coddyでコードを学ぼう

始める