HTML/CSS / LESSON 10 / HT10

HTML/CSS:色と背景

1学習の目的

2基礎解説

書き方特徴
キーワードred / navy簡単だが種類が限られる
16進数#ff0000実務で最も多い
rgbrgb(255, 0, 0)数値で調整しやすい
rgbargba(255, 0, 0, 0.5)透明度を指定できる
✅ 覚えるべき重要ポイント
  1. 16進数は「赤・緑・青」を2桁ずつ#ff0000 なら赤が最大(ff=255)で他が0。同じ数字が並ぶなら3桁に短縮できる#ffffff#fff)。
  2. rgba の4つ目が透明度0 で完全な透明、1 で不透明。0.5 なら半透明になり、下の背景が透けて見える。
  3. opacity は要素全体を透明にする。中の文字も一緒に薄くなる。背景だけ透けさせたいなら rgba を使う——ここを間違えると文字が読めなくなる。
  4. 文字色は color、背景色は background-color。名前が違うので混同しない。
  5. 文字色と背景色のコントラストを確保する。薄いグレーの文字を白背景に置くと、読める人と読めない人が出る。本文は十分な濃さを保つ

現場使用例:ブランドカラーの適用、セクションごとの背景色分け、ボタンの状態表現、オーバーレイ(半透明の重ね)。

/* 4種類の書き方(すべて赤) */
.a { color: red; }                    /* キーワード */
.b { color: #ff0000; }                /* 16進数 */
.c { color: rgb(255, 0, 0); }         /* rgb */
.d { color: rgba(255, 0, 0, 0.5); }   /* 半透明の赤 */

/* 短縮形(同じ数字が並ぶとき) */
.white { color: #fff; }    /* #ffffff と同じ */
.black { color: #000; }    /* #000000 と同じ */

/* 背景色 */
body { background-color: #f5f5f5; }   /* ページ全体は薄いグレー */
.card { background-color: #fff; }     /* カードは白で浮かせる */

/* 半透明の背景(文字ははっきり見える) */
.overlay {
  background-color: rgba(0, 0, 0, 0.6);
  color: white;
}

/* ⚠ opacity は中身も薄くなる */
.faded {
  opacity: 0.5;    /* 文字まで半透明に */
}

/* グラデーション */
.gradient {
  background: linear-gradient(to right, #0066cc, #00aaff);
}

3基本ドリル(10問)

HT10-D01 段落の文字色を16進数で赤(#ff0000)に指定するHTMLを書け。 コーディング★☆☆無料
期待される結果

p の色が赤

ヒント

color: #ff0000; と書く。# を忘れない。

模範解答
<style>
  p {
    color: #ff0000;
  }
</style>

<p>赤い文字</p>
解説

16進数は「赤・緑・青」を2桁ずつ。ff(255)が最大、00 が最小。実務では最も多く使われる書き方。

HT10-D02 rgba(255, 0, 0, 0.5) の4つ目の数値は何を表すか。
A. 明るさ B. 透明度 C. 彩度 D. 色相
選択★☆☆無料
期待される結果

解答 == B

ヒント

alpha(アルファ値)という。

模範解答
B
解説

0で完全な透明、1で不透明。0.5なら半透明になり、下の背景が透けて見える。

HT10-D03 body の背景色を #f5f5f5、段落の背景色を white にするHTMLを書け。 コーディング★☆☆無料
期待される結果

body と p の背景色が正しい

ヒント

background-color で指定する。color(文字色)とは別のプロパティ。

模範解答
<style>
  body {
    background-color: #f5f5f5;
  }

  p {
    background-color: white;
  }
</style>

<p>白い背景の段落</p>
解説

全体を薄いグレー、要素を白にすると立体感が出る。カードデザインの基本になる配色。

HT10-D04 背景色を指定するプロパティを補ってコードを完成させよ。 穴埋め★☆☆無料
コード
<style>
  p {
    ____: yellow;
  }
</style>

<p>黄色い背景</p>
期待される結果

p の背景が黄色

ヒント

「背景の色」を意味する16文字のプロパティ(ハイフン含む)。

模範解答
background-color
解説

color は文字色、background-color は背景色。名前が似ているので混同しないよう注意する。

HT10-D05 #ffffff を短縮して書くとどうなるか。
A. #ff B. #fff C. #f D. 短縮できない
選択★☆☆無料
期待される結果

解答 == B

ヒント

2桁ずつ同じ数字が並んでいる場合、1桁ずつに縮められる。

模範解答
B
解説

ff-ff-ff が f-f-f に縮まる。#000000 も #000 と書ける。ただし #ff5500 のように揃っていない場合は短縮できない。

HT10-D06 半透明の背景(黒・透明度0.6)に白い文字を載せた div を作れ。 コーディング★★☆広告解放
期待される結果

背景が rgba(0,0,0,0.6)、文字が白

ヒント

background-color: rgba(0, 0, 0, 0.6); と color: white; を組み合わせる。

模範解答
<style>
  .overlay {
    background-color: rgba(0, 0, 0, 0.6);
    color: white;
  }
</style>

<div class="overlay">半透明の上の文字</div>
解説

rgba なら背景だけ透ける。文字は不透明のままなので、写真の上に載せても読める——画像のキャプションでよく使う手法。

HT10-D07 要素全体を半透明にするプロパティを補ってコードを完成させよ。 穴埋め★★☆広告解放
コード
<style>
  .faded {
    ____: 0.5;
  }
</style>

<div class="faded">薄くなる</div>
期待される結果

opacity が 0.5

ヒント

「不透明度」を意味する7文字のプロパティ。

模範解答
opacity
解説

opacity は要素全体(中の文字も)を透明にする。背景だけ透かしたいなら rgba を使う。

HT10-D08 写真の上に文字を載せるとき、背景だけ半透明にしたい。適切な方法はどれか。
A. opacity: 0.5 B. background-color: rgba(…, 0.5) C. color: transparent D. どちらでもよい
選択★★☆広告解放
期待される結果

解答 == B

ヒント

opacity は中の文字も薄くしてしまう。

模範解答
B
解説

opacity だと文字まで薄くなって読めなくなる。rgba なら背景だけが透け、文字はくっきり残る。

HT10-D09 rgb 形式で緑(rgb(0, 128, 0))の文字色を指定するHTMLを書け。 コーディング★★☆広告解放
期待される結果

p の色が rgb(0, 128, 0)

ヒント

rgb(赤, 緑, 青) の順で0〜255の値を書く。

模範解答
<style>
  p {
    color: rgb(0, 128, 0);
  }
</style>

<p>緑の文字</p>
解説

rgb は数値で調整しやすい。「もう少し明るく」といった微調整のとき、16進数より直感的に扱える。

HT10-D10 グラデーションの背景(左から右へ #0066cc から #00aaff)を持つ div を作れ。 コーディング★★☆広告解放
期待される結果

linear-gradient が適用されている

ヒント

background: linear-gradient(to right, 色1, 色2); と書く。

模範解答
<style>
  .hero {
    background: linear-gradient(to right, #0066cc, #00aaff);
  }
</style>

<div class="hero">グラデーション背景</div>
解説

to right で左から右へ変化するto bottom なら上から下、角度(45deg)でも指定できる。

4実践シナリオ(5問)

HT10-S01 【カードの配色】body を #f5f5f5.card を白背景・文字色 #333333 にし、カードを1つ配置せよ。 コーディング★★☆広告解放
期待される結果

body と card の色が正しい

ヒント

全体を薄いグレー、カードを白にすると浮かんで見える。

模範解答
<style>
  body {
    background-color: #f5f5f5;
  }

  .card {
    background-color: #ffffff;
    color: #333333;
  }
</style>

<div class="card">
  <p>カードの中身です。</p>
</div>
解説

背景に差を付けるだけで階層が生まれる。枠線を使わなくても「ここがひとまとまり」と伝えられる。

HT10-S02 【ボタンの色分け】.btn-primary(背景 #0066cc・文字白)と .btn-danger(背景 #cc0000・文字白)の2つのボタンを作れ。 コーディング★★☆広告解放
期待される結果

2つのボタンの色が正しい

ヒント

それぞれのクラスに背景色と文字色を指定する。

模範解答
<style>
  .btn-primary {
    background-color: #0066cc;
    color: #ffffff;
  }

  .btn-danger {
    background-color: #cc0000;
    color: #ffffff;
  }
</style>

<button class="btn-primary">保存</button>
<button class="btn-danger">削除</button>
解説

色で意味を伝えるのがボタンの役割。青は安全な操作、赤は取り消せない操作——この慣習は世界共通に近い。

HT10-S03 【rgba と opacity の違い】.abackground-color: rgba(255,0,0,0.3).bbackground-color: red; opacity: 0.3 を指定し、2つの div を並べて違いを確認せよ。 コーディング★★☆広告解放
期待される結果

aはrgba背景、bはopacity

ヒント

どちらも薄い赤に見えるが、中の文字の見え方が違う。

模範解答
<style>
  .a {
    background-color: rgba(255, 0, 0, 0.3);
  }

  .b {
    background-color: red;
    opacity: 0.3;
  }
</style>

<div class="a">rgba:文字ははっきり</div>
<div class="b">opacity:文字も薄い</div>
解説

背景の色は似ていても、文字の見え方が違う。rgba は背景だけ、opacity は要素全体——用途に応じて選ぶ。

HT10-S04 【セクションの色分け】3つの section を作り、背景を白・グレー・白と交互にせよ。:nth-of-type(even) を使うこと(nth-child ではない理由も考えること)。 コーディング★★★広告解放
期待される結果

2番目だけ背景が違う

ヒント

section:nth-of-type(even) にグレーを指定する。nth-child だと style タグも数に含まれてしまう。

模範解答
<style>
  section {
    background-color: #ffffff;
  }

  section:nth-of-type(even) {
    background-color: #f5f5f5;
  }
</style>

<section><p>1つ目</p></section>
<section><p>2つ目</p></section>
<section><p>3つ目</p></section>
解説

nth-of-type は「同じタグの中で何番目か」を数える。一方 nth-child は親の中の全要素を数えるため、style タグが1番目に入ると順番がずれる——実務でハマりやすい落とし穴。

HT10-S05 【ヒーローエリア】グラデーション背景(135deg#0066cc から #004499)に白い文字の h1 を載せた div を作れ。 コーディング★★★広告解放
期待される結果

グラデーションと白文字が正しい

ヒント

linear-gradient(135deg, 色1, 色2) と color: white を組み合わせる。

模範解答
<style>
  .hero {
    background: linear-gradient(135deg, #0066cc, #004499);
    color: #ffffff;
  }
</style>

<div class="hero">
  <h1>ようこそ</h1>
</div>
解説

135deg は左上から右下への斜め。同系色でグラデーションを作ると、派手にならず上品な印象になる。

5仕上げ課題

HT10-FINAL 【配色設計されたページ】色の使い分けで階層を表現したページを作れ。

CSSの指定
body:背景 #f5f5f5、文字色 #333333
.hero:グラデーション背景(135deg#0066cc#004499)、文字色 #ffffff
.card:背景 #ffffff
.card h3:文字色 #0066cc
.note:背景 rgba(255, 200, 0, 0.2)(半透明の黄色)
.btn:背景 #0066cc、文字色 #fff3桁の短縮形で書くこと

HTML の内容
・div.hero(中に h1「ゼロカラカフェ」)
・div.card(中に h3「本日のおすすめ」と段落)
・p.note「※ 数量限定です」
・button.btn「予約する」

確認したいこと:3桁の #fffrgb(255,255,255) として解釈される
総合★★★広告解放
期待される結果

すべての色指定が正しい

ヒント

#fff は #ffffff と同じ。rgba の4つ目は透明度。グラデーションは background プロパティで指定する。

模範解答
<style>
  body {
    background-color: #f5f5f5;
    color: #333333;
  }

  .hero {
    background: linear-gradient(135deg, #0066cc, #004499);
    color: #ffffff;
  }

  .card {
    background-color: #ffffff;
  }

  .card h3 {
    color: #0066cc;
  }

  .note {
    background-color: rgba(255, 200, 0, 0.2);
  }

  .btn {
    background-color: #0066cc;
    color: #fff;
  }
</style>

<div class="hero">
  <h1>ゼロカラカフェ</h1>
</div>

<div class="card">
  <h3>本日のおすすめ</h3>
  <p>季節のパンケーキをご用意しています。</p>
</div>

<p class="note">※ 数量限定です</p>

<button class="btn">予約する</button>
解説

このページは、色だけで情報の階層を作っている。背景のグレー、カードの白、ヒーローの濃紺——枠線を1本も引いていないのに、どこがひとまとまりか分かる。これが配色設計の力だ。

.notergba(255, 200, 0, 0.2) にも意図がある。透明度0.2の薄い黄色なので、背景がグレーでも白でも、そこに馴染んだ「注意書きの色」になる。もし不透明な黄色を使っていたら、背景から浮いて目立ちすぎていた。

#fff という3桁の書き方も覚えておきたい。#ffffff と完全に同じ意味で、実務でもよく見かける。ただし #0066cc のように数字が揃っていない色は短縮できない。

ここまでで「文字」と「色」が整った。しかしまだ、要素同士がぴったりくっついていて窮屈に見えるはずだ。次章では余白を学ぶ——デザインで最も重要でありながら、最も見落とされやすい要素を扱う。