HTML/CSS / LESSON 07 / HT07

HTML/CSS:CSSとは・書き方3種

1学習の目的

2基礎解説

HTML編で作ったページは、まだ装飾されていません。CSSは「どの要素を、どう見せるか」を指定する言語です。HTMLが骨組みなら、CSSは服装にあたります。

書き方場所使いどころ
外部ファイルstyle.css を link で読み込む実務ではこれ
head 内<style> … </style>1ページだけの調整
インライン<p style="…">その場限りの上書き
✅ 覚えるべき重要ポイント
  1. CSSの基本形は「セレクタ { プロパティ: 値; }」p { color: red; } なら「すべての p を赤にする」という意味。値の後ろのセミコロンを忘れない
  2. 後から書いたものが勝つ。同じ強さの指定が2つあれば、下に書いたほうが適用される。CSSが効かないときは、後ろで上書きされていないか確認する。
  3. インラインが最も強い<p style="color:green"> は、style タグの指定より優先される。だから安易に使うと後で困る。
  4. 親の指定は子に受け継がれる(継承)body { color: navy; } と書けば、中の p もすべて紺色になる。文字色やフォントは継承されるが、余白や枠線は継承されない。
  5. !important を付けると最優先になるが、使うと優先順位が壊れて管理不能になる。最後の手段であり、基本的には使わない。

現場使用例:実務では外部ファイル(style.css)に書くのが基本。1つのCSSを全ページで共有でき、修正も1箇所で済む。

<!-- ① 外部ファイル(実務の基本) -->
<head>
  <link rel="stylesheet" href="style.css">
</head>

/* style.css の中身 */
p {
  color: red;        /* 文字色 */
  font-size: 16px;   /* 文字の大きさ */
}

<!-- ② head 内に直接書く -->
<head>
  <style>
    p { color: red; }
  </style>
</head>

<!-- ③ インライン(その要素だけ) -->
<p style="color: blue;">この段落だけ青</p>

/* 優先順位:インライン > style/外部ファイル */
<style>p { color: red; }</style>
<p style="color: green;">緑になる</p>

/* 同じ強さなら後勝ち */
p { color: red; }
p { color: blue; }   /* こちらが適用される */

/* 継承:親の指定が子に伝わる */
body { color: navy; }   /* 中の p もすべて紺色に */

/* コメントはスラッシュとアスタリスクで囲む */

3基本ドリル(10問)

HT07-D01 style タグを使い、すべての段落(p)の文字色を赤(red)にするHTMLを書け(段落も1つ含めること)。 コーディング★☆☆無料
期待される結果

p の色が赤

ヒント

<style>p { color: red; }</style> と書き、その後に <p> を置く。

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

<p>赤い文字です。</p>
解説

セレクタ { プロパティ: 値; } が基本形。p というセレクタが「どの要素に適用するか」を決めている。

HT07-D02 CSSの基本の書き方として正しいものはどれか。
A. p = color: red; B. p { color: red; } C. p(color: red) D. color(p) = red
選択★☆☆無料
期待される結果

解答 == B

ヒント

波カッコで囲み、コロンで区切る。

模範解答
B
解説

セレクタ・波カッコ・プロパティ・コロン・値・セミコロン——この6要素がCSSの基本構造。

HT07-D03 見出し(h1)の文字サイズを 32px、文字色を navy にする style を書け(h1 も含めること)。 コーディング★☆☆無料
期待される結果

h1 のサイズと色が正しい

ヒント

1つのセレクタに複数のプロパティを書ける。それぞれセミコロンで区切る。

模範解答
<style>
  h1 {
    font-size: 32px;
    color: navy;
  }
</style>

<h1>見出し</h1>
解説

1つのセレクタに何個でもプロパティを書ける。各行の末尾のセミコロンを忘れると、それ以降が無効になる。

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

<p>青い文字</p>
期待される結果

p の色が青

ヒント

「色」を意味する5文字のプロパティ。

模範解答
color
解説

color は文字色。背景色は background-color で、別のプロパティになる(HT10)。

HT07-D05 同じ要素に style タグとインライン(style="…")の両方で色を指定したら、どちらが適用されるか。
A. style タグ B. インライン C. 両方混ざる D. エラーになる
選択★☆☆無料
期待される結果

解答 == B

ヒント

より要素に近い指定が強い。

模範解答
B
解説

インラインが最優先。だからこそ安易に使うと、後からCSSで変更できなくなり困ることになる。

HT07-D06 インラインスタイルで、1つの段落だけ文字色を green にするHTMLを書け。 コーディング★★☆広告解放
期待される結果

p の色が緑

ヒント

<p style="color: green;"> と書く。

模範解答
<p style="color: green;">この段落だけ緑</p>
解説

その要素だけに適用される。ただし他のページで再利用できず、修正も面倒になるので、実務では極力避ける。

HT07-D07 外部CSSファイルを読み込むタグを補ってコードを完成させよ。 穴埋め★★☆広告解放
コード
<head>
  <____ rel="stylesheet" href="style.css">
</head>
期待される結果

link タグが存在する

ヒント

「つなぐ」を意味する4文字のタグ。閉じタグは不要。

模範解答
link
解説

link で外部ファイルを読み込む。実務ではこの方法が基本で、1つのCSSを全ページで共有できる。

HT07-D08 p { color: red; }p { color: blue; } をこの順で書いたら、どうなるか。
A. 赤 B. 青 C. 紫 D. エラー
選択★★☆広告解放
期待される結果

解答 == B

ヒント

同じ強さの指定なら、どちらが優先されるか。

模範解答
B
解説

後に書いたほうが勝つ。CSSが効かないときは、下のほうで上書きされていないか確認するのが第一手。

HT07-D09 継承を使い、body に文字色 navy を指定して、中の段落2つも紺色にするHTMLを書け(p には何も指定しないこと)。 コーディング★★☆広告解放
期待される結果

p の色が navy(継承)

ヒント

body に指定すれば、中の要素すべてに受け継がれる。

模範解答
<style>
  body {
    color: navy;
  }
</style>

<p>1つ目の段落</p>
<p>2つ目の段落</p>
解説

文字色やフォントは子に継承される。全体の基本設定を body に書いておくと、個別指定が減って管理しやすくなる。

HT07-D10 CSSにコメントを書き、その下で段落の文字色を red にするHTMLを書け(コメントは「文字色の設定」とする)。 コーディング★★☆広告解放
期待される結果

p の色が赤(コメントは無視される)

ヒント

CSSのコメントはスラッシュとアスタリスクで囲む。HTMLとは書き方が違う。

模範解答
<style>
  /* 文字色の設定 */
  p {
    color: red;
  }
</style>

<p>本文</p>
解説

CSSのコメントはスラッシュ+アスタリスク。HTMLの <!-- --> とは書き方が違うので混同しない。

4実践シナリオ(5問)

HT07-S01 【見出しと本文の設定】h1 を navy28px、p を #33333316px にするCSSを書き、h1 と p を1つずつ配置せよ。 コーディング★★☆広告解放
期待される結果

h1 と p のスタイルが正しい

ヒント

2つのセレクタを並べて書く。色は16進数でも指定できる。

模範解答
<style>
  h1 {
    color: navy;
    font-size: 28px;
  }

  p {
    color: #333333;
    font-size: 16px;
  }
</style>

<h1>ページタイトル</h1>
<p>本文の段落です。</p>
解説

#333333 は少し薄い黒。真っ黒(#000000)より目に優しく、本文の色として広く使われている。

HT07-S02 【優先順位を確かめる】style タグで p を red に指定しつつ、インラインで green を指定した段落を作れ。どちらが適用されるか確認すること。 コーディング★★☆広告解放
期待される結果

p の色が緑(インラインが勝つ)

ヒント

style タグとインラインの両方で指定する。

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

<p style="color: green;">何色になるか</p>
解説

インラインが勝って緑になる。style タグの指定は無視される——この強さが、後から変更しにくい原因になる。

HT07-S03 【後勝ちを確かめる】style タグの中で p の色を2回指定し(1回目 red、2回目 blue)、どちらが適用されるか確認せよ。 コーディング★★☆広告解放
期待される結果

p の色が青(後勝ち)

ヒント

同じセレクタを2回書く。

模範解答
<style>
  p {
    color: red;
  }

  p {
    color: blue;
  }
</style>

<p>何色になるか</p>
解説

後に書いたほうが勝つ。これを知らないと「指定したのに効かない」と延々悩むことになる。

HT07-S04 【継承と個別指定】body に文字色 gray を指定しつつ、h1 だけ navy にするCSSを書け(h1 と p を1つずつ配置)。 コーディング★★★広告解放
期待される結果

h1 が navy、p は gray(継承)

ヒント

body の指定は継承されるが、h1 に個別指定すればそちらが優先される。

模範解答
<style>
  body {
    color: gray;
  }

  h1 {
    color: navy;
  }
</style>

<h1>見出し</h1>
<p>本文です。</p>
解説

継承より個別指定が優先される。全体の基本を body に置き、変えたい要素だけ上書きする——これが効率的な書き方。

HT07-S05 【複数要素の一括指定】h1 と h2 の両方を同時に navy にするCSSを、カンマ区切りのセレクタで書け(h1 と h2 を1つずつ配置)。 コーディング★★★広告解放
期待される結果

h1 と h2 が両方 navy

ヒント

セレクタをカンマで区切ると、まとめて指定できる。

模範解答
<style>
  h1, h2 {
    color: navy;
  }
</style>

<h1>大見出し</h1>
<h2>中見出し</h2>
解説

カンマ区切りで複数のセレクタをまとめられる。同じスタイルを何度も書かずに済み、修正も1箇所で完結する。

5仕上げ課題

HT07-FINAL 【ページ全体のスタイル設定】これまで作ってきたHTMLに、初めてCSSで見た目を与える。

CSSの指定(style タグに書くこと)
body:文字色 #333333、文字サイズ 16px
h1:文字色 navy、文字サイズ 32px
h2:文字色 navy、文字サイズ 24px
 ※ ②③はカンマ区切りで色をまとめて指定し、サイズは個別に書くこと
a:文字色 #0066cc

HTMLの内容
・h1「ゼロカラカフェ」
・段落「静かな時間を過ごせるカフェです。」
・h2「アクセス」
・段落(中にリンク「地図を見る」/href="#")

確認したいこと:段落の色は body から継承され、リンクだけ別の色になる
総合★★★広告解放
期待される結果

すべての要素のスタイルが正しい

ヒント

h1, h2 { color: navy; } でまとめ、その後に h1 { font-size: 32px; } と h2 { font-size: 24px; } を個別に書く。p には色を指定せず、body から継承させる。

模範解答
<style>
  body {
    color: #333333;
    font-size: 16px;
  }

  h1, h2 {
    color: navy;
  }

  h1 {
    font-size: 32px;
  }

  h2 {
    font-size: 24px;
  }

  a {
    color: #0066cc;
  }
</style>

<h1>ゼロカラカフェ</h1>
<p>静かな時間を過ごせるカフェです。</p>

<h2>アクセス</h2>
<p><a href="#">地図を見る</a></p>
解説

段落には色を1度も指定していないのに、#333333 になっている。これが継承の働きだ。body に基本設定を書いておけば、個別の指定が最小限で済む。

一方、リンクだけは継承されていないa 要素はブラウザが最初から青色を割り当てているため、body の色を上書きしてしまう。だからリンクの色を変えたいなら、明示的に指定する必要がある。「継承されるはず」と思い込んでいると、ここで詰まる。

h1, h2 { color: navy; } のカンマ区切りにも意味がある。共通する部分はまとめ、違う部分だけ個別に書く——これがCSSを短く保つ基本の考え方だ。もし h1 と h2 に別々に color を書いていたら、色を変えるときに2箇所直す必要があった。

ここまでで「CSSをどこに書き、どう優先されるか」は理解できた。しかし今のセレクタは要素名だけで、「特定の1つだけ」を狙えない。次章ではクラスやIDを使い、狙った要素に正確にスタイルを当てる方法を学ぶ。