HTML: HTMLの色

HTMLでの色は複数の方法で表現できます。さまざまな色表現方法をマスターすることで、ウェブデザインのすべてのピクセルを柔軟かつ正確にコントロールできるようになります。

1. 色表現の概要

HTMLとCSSには主に3つの色表現方法があります:色名16進数RGB。いずれも色を定義できますが、それぞれに適した使用シーンがあります。

▶ サンプル

HTML
<!-- 3つとも赤い背景を表す -->
<div style="background-color: red;">色名: red</div>
<div style="background-color: #FF0000;">16進数: #FF0000</div>
<div style="background-color: rgb(255,0,0);">RGB: rgb(255,0,0)</div>
▶ 試してみよう

2. 色名

HTMLは140以上の標準色名をサポートしています。最もよく使われるものには、red、blue、green、black、white、gray、orange、purple、yellowなどがあります。色名を使うのが最も直感的な方法です ― エンコードルールを覚える必要はありません。

(1) よく使われる色名一覧

色名 16進数 RGB 説明
red #FF0000 rgb(255,0,0)
green #008000 rgb(0,128,0) 緑(標準)
lime #00FF00 rgb(0,255,0) ライムグリーン(明るい緑)
blue #0000FF rgb(0,0,255)
black #000000 rgb(0,0,0)
white #FFFFFF rgb(255,255,255)
gray #808080 rgb(128,128,128) グレー
silver #C0C0C0 rgb(192,192,192) シルバー
orange #FFA500 rgb(255,165,0) オレンジ
yellow #FFFF00 rgb(255,255,0) 黄色
purple #800080 rgb(128,0,128)
cyan #00FFFF rgb(0,255,255) シアン
magenta #FF00FF rgb(255,0,255) マゼンタ
pink #FFC0CB rgb(255,192,203) ピンク
brown #A52A2A rgb(165,42,42) 茶色
gold #FFD700 rgb(255,215,0) 金色
navy #000080 rgb(0,0,128) ネイビーブルー
teal #008080 rgb(0,128,128) ティール
olive #808000 rgb(128,128,0) オリーブ
coral #FF7F50 rgb(255,127,80) コーラル
tomato #FF6347 rgb(255,99,71) トマト
skyblue #87CEEB rgb(135,206,235) スカイブルー
violet #EE82EE rgb(238,130,238) バイオレット
📌 ヒント:色名はシンプルで直感的なため、簡単なプロトタイピングや学習に最適です。ただし、実運用環境では色名の選択肢が限られており、精度に欠けるため ― 16進数かRGB表記が推奨されます。


3. 16進数(Hex)

16進数の色は # で始まり、#RRGGBB の形式で記述します。RRは赤の値、GGは緑の値、BBは青の値を表し、範囲は 00 から FF(16進数)です。各ペアの数字が同じ場合は、3文字に省略して #RGB と書くこともできます。

(1) よく使われる16進数カラー

16進数 RGB値 説明
純粋な赤 #FF0000 255,0,0 赤チャンネル最大、他は0
純粋な緑 #00FF00 0,255,0 緑チャンネル最大、他は0
純粋な青 #0000FF 0,0,255 青チャンネル最大、他は0
純粋な黒 #000000 0,0,0 すべてのチャンネル0
純粋な白 #FFFFFF 255,255,255 すべてのチャンネル最大
スカイブルー #87CEEB 135,206,235 薄い青
ダークブルー #00008B 0,0,139 深い青
コーラル #FF7F50 255,127,80 オレンジピンク
トマト #FF6347 255,99,71 赤オレンジ
ゴールド #FFD700 255,215,0 黄金色
オリーブ #808000 128,128,0 暗い黄色
マルーン #800000 128,0,0 暗い赤
ネイビー #000080 0,0,128 深い青
バイオレット #EE82EE 238,130,238 紫ピンク
ティール #00CED1 0,206,209 暗いシアン

▶ サンプル

HTML
<!-- 6桁の16進数 -->
<div style="background-color: #FF5733;">#FF5733(オレンジ)</div>
<div style="background-color: #33A1FF;">#33A1FF(青)</div>
<div style="background-color: #2ECC71;">#2ECC71(緑)</div>

<!-- 3文字の省略形(各ペアが同じ場合) -->
<div style="background-color: #F00;">#F00 は #FF0000 と同じ(赤)</div>
<div style="background-color: #0F0;">#0F0 は #00FF00 と同じ(緑)</div>
<div style="background-color: #00F;">#00F は #0000FF と同じ(青)</div>
▶ 試してみよう

4. RGB と RGBA

rgb(red, green, blue) 関数は0〜255の10進数で赤、緑、青の各チャンネルを表します。16進数と比較して、RGBは人間の直感的な数値理解に近いです。rgba() はRGBにアルファ透明度チャンネルを追加したものです。

(1) RGB値と色の対応

RGB値 説明
rgb(255, 0, 0) 赤チャンネル最大、他は0
rgb(0, 255, 0) 緑チャンネル最大、他は0
rgb(0, 0, 255) 青チャンネル最大、他は0
rgb(255, 255, 0) 黄色 赤+緑
rgb(0, 255, 255) シアン 緑+青
rgb(255, 0, 255) マゼンタ 赤+青
rgb(255, 255, 255) すべてのチャンネル最大
rgb(0, 0, 0) すべてのチャンネル0
rgb(128, 128, 128) グレー すべてのチャンネル中間
rgb(255, 165, 0) オレンジ 赤+部分的な緑
rgb(255, 192, 203) ピンク 赤+少量の緑と青
rgb(165, 42, 42) 茶色 暗い赤+少量の緑
rgb(0, 128, 128) ティール 緑+青 equally
rgb(128, 0, 128) 赤+青 equally
rgb(0, 0, 128) ネイビー 深い青

▶ サンプル

HTML
<div style="background-color: rgb(255, 99, 71);">
rgb(255, 99, 71) ― トマト色
</div>
<div style="background-color: rgb(60, 179, 113);">
rgb(60, 179, 113) ― ミディアムシーグリーン
</div>

<!-- rgbaは透明度を追加。最後のパラメータは0〜1 -->
<div style="background-color: rgba(255, 0, 0, 0.3);">
半透明の赤(不透明度30%)
</div>
<div style="background-color: rgba(0, 0, 255, 0.6);">
半透明の青(不透明度60%)
</div>
▶ 試してみよう

5. HSL

hsl(hue, saturation, lightness) は人間の直感により合致したカラーモデルです。Hue(色相)は色の角度(0〜360度)、Saturation(彩度)は強さ(パーセント)、Lightness(明度)は明るさ(パーセント)を表します。同様に、hsla() は透明度をサポートします。

(1) HSL色相環

角度 HSL値 説明
hsl(0, 100%, 50%) 色相の起点
30° オレンジ hsl(30, 100%, 50%) 赤→黄の遷移
60° 黄色 hsl(60, 100%, 50%) 赤+緑
90° 黄緑 hsl(90, 100%, 50%) 黄→緑の遷移
120° hsl(120, 100%, 50%) 艤相の中点
150° 青緑 hsl(150, 100%, 50%) 緑→シアンの遷移
180° シアン hsl(180, 100%, 50%) 緑+青
210° スカイブルー hsl(210, 100%, 50%) シアン→青の遷移
240° hsl(240, 100%, 50%) 艤相の終点
270° hsl(270, 100%, 50%) 青→赤の遷移
300° マゼンタ hsl(300, 100%, 50%) 青+赤
330° ローズ hsl(330, 100%, 50%) マゼンタ→赤の遷移
360° hsl(360, 100%, 50%) 起点に戻る

(2) 彩度と明度の調整

調整 効果
彩度100% 最も鮮やか hsl(0, 100%, 50%) = 純粋な赤
彩度50% より柔らかい hsl(0, 50%, 50%) = 暗い赤
彩度0% グレー hsl(0, 0%, 50%) = グレー
明度50% 通常 hsl(0, 100%, 50%) = 純粋な赤
明度100% 完全な白 hsl(0, 100%, 100%) = 白
明度0% 完全な黒 hsl(0, 100%, 0%) = 黒

▶ サンプル

HTML
<!-- HSLの色混合の例 -->
<div style="background-color: hsl(0, 100%, 50%);">
hsl(0, 100%, 50%) ― 純粋な赤
</div>
<div style="background-color: hsl(120, 100%, 50%);">
hsl(120, 100%, 50%) ― 純粋な緑
</div>
<div style="background-color: hsl(240, 100%, 50%);">
hsl(240, 100%, 50%) ― 純粋な青
</div>
<div style="background-color: hsl(200, 80%, 60%);">
hsl(200, 80%, 60%) ― 柔らかな青
</div>

<!-- hslaは透明度を追加 -->
<div style="background-color: hsla(0, 100%, 50%, 0.4);">
hsla(0, 100%, 50%, 0.4) ― 半透明の赤
</div>
▶ 試してみよう
💡 デザイナーの選択:HSLはデザイナーにとってより親しみやすいものです。色相を調整するだけでさまざまな色を巡回でき、彩度で鮮やかさを、明度で明るさを調整できます ― 3つの次元で簡単に完全なカラースキームを生成できます。

❓ よくある質問

Q 16進数(#FF5733)とRGB(rgb(255, 87, 51))の違いは何ですか?
A どちらも同じ色を表していますが、書き方が異なります。16進数は6桁の16進数で、各ペアが赤、緑、青のチャンネル(00-FF)を表します。RGBは3つの0-255の10進数を使用します。16進数はより簡潔(6文字)、RGBはより直感的(値が直接見える)。実際の開発では、16進数がより一般的です。透明度が必要な場合はRGBAを使用します。
Q RGBAはいつ使うのですか?透明度はどのように計算しますか?
A RGBAはRGBにアルファチャンネル(透明度)を追加したもので、値は0(完全に透明)から1(完全に不透明)の範囲です。使用シーン:1)半透明の背景(オーバーレイ、ぼかし効果);2)画像上のテキストの可読性を高める;3)ホバーツールチップの背景。透明度の計算:rgba(0, 0, 0, 0.5)は50%透明の黒を意味します。
Q HSLはRGBより優れているのですか?
A HSL(色相、彩度、明度)は人間にとってより直感的です。RGBでは望ましい色を得るために3つの値を同時に調整する必要がありますが、HSLでは:1)色相(0-360度)を調整するだけで spectrum全体を巡回できます;2)彩度を調整するだけで鮮やかさを制御できます;3)明度を調整するだけで明るさを制御できます。デザイナーは通常HSLでカラースキームを生成し、開発者は通常RGB/16進数を使用します。
Q 色名に中国語を使うことはできますか?红色など?
A いいえ。HTML/CSSは英語の色名(redbluegreenなど)のみをサポートしており、標準的な色名は147個だけです。中国語の色名(红色など)は認識されません。推奨事項:1)シンプルなシナリオでは英語の色名を使用;2)精密さが必要なシナリオでは16進数またはRGBを使用;3)多くの色を管理する場合はCSS変数を使用。色名の限界:異なるブラウザが同じ色名をわずかに異なる場合があります。

📖 まとめ

📝 練習問題

  1. カラーパレット: 3つの異なる色表現(色名、16進数、RGB)を使って3つの色ブロックを作成してください。各ブロックは100×100pxで、横に並べて表示します。
  2. 透明度グラデーション: rgba() を使って、背景が完全不透明から完全透明に遷移する水平グラデーション効果を作成してください(ヒント:background: linear-gradient() を使用)。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%