ウェブエンジニア問題集

CSSとは何か — Webスタイリングの基本を理解する

Webページの見た目を決めるのが**CSS(Cascading Style Sheets)**です。HTMLが「構造」を担当するのに対し、CSSは「見た目」を担当します。文字の色・大きさ、要素の配置、背景、余白——これらはすべてCSSで制御します。

学習者学習者

CSSって「色や文字を変えるやつ」くらいの理解で止まってる…。ちゃんと体系的に分かってないかも。

CSSでデザインを考えるイメージ

HTMLとCSSの役割分担

HTMLは「見出しはここ、段落はここ、画像はここ」という構造を定義します。CSSはその構造に対して「見出しは赤・フォントサイズ24px、背景は白」というスタイルを適用します。

<!-- HTML:構造 -->
<h1>こんにちは</h1>
<p>Webの世界へようこそ。</p>
/* CSS:見た目 */
h1 {
  color: #1a1a2e;
  font-size: 2rem;
}
 
p {
  color: #444;
  line-height: 1.8;
}

この分離が重要です。HTMLを変えずにCSSだけ差し替えれば、全く違うデザインになります。


CSSの書き方:ルールセット

CSSの基本単位はルールセットです。

セレクタ {
  プロパティ: 値;
  プロパティ: 値;
}
  • セレクタ:どのHTML要素にスタイルを当てるかを指定する
  • プロパティ:何を変えるか(colorfont-sizemargin など)
  • :どう変えるか(red16px1rem など)
/* h2要素すべてに適用 */
h2 {
  color: #2563eb;
  font-size: 1.5rem;
  margin-bottom: 0.5rem;
}

CSSをHTMLに読み込む方法

外部ファイル(推奨)

<head>
  <link rel="stylesheet" href="styles.css">
</head>

別ファイルに書いてHTMLから読み込む方法が最も一般的です。複数ページで同じスタイルを使い回せます。

<style> タグ

<head>
  <style>
    h1 { color: red; }
  </style>
</head>

HTMLの中に直接書く方法。小規模な場合やコンポーネント単位で使うことがあります。

インラインスタイル

<h1 style="color: red; font-size: 2rem;">タイトル</h1>

要素に直接書く方法。詳細度が高いため、テストや一時的な上書きには使えますが、保守性が下がるので基本的には避けます。


ブラウザのデフォルトスタイル

何もCSSを書いていなくても、ブラウザはHTMLにデフォルトのスタイルを適用します。h1 は大きく太字になり、ul にはドットが付く——これはブラウザが持つUser Agent Stylesheetによるものです。

実務では、ブラウザ間のデフォルト差異をなくすために CSS ResetNormalize.css を使うことが多いです。

/* シンプルなCSS Reset の例 */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

CSSの「カスケード」とは

CSSの名前に含まれる Cascade(滝) は、複数のスタイルが重なったときの優先順位のルールを表しています。同じ要素に複数のスタイルが当たった場合、どれが適用されるかは:

  1. 詳細度(Specificity) — より具体的なセレクタが勝つ
  2. 記述順 — 後に書いたものが勝つ(詳細度が同じ場合)
  3. 継承 — 親要素のスタイルが子要素に引き継がれることがある

詳細度の仕組みは後の章で詳しく解説します。


ちゃんと使うためのポイント

  • CSSはHTML構造とは分離して管理する(外部ファイル推奨)
  • ルールセットの構文(セレクタ・プロパティ・値)を正確に書く
  • ブラウザにはデフォルトスタイルがある。想定外のスタイルが当たっていたらまずデベロッパーツールで確認する
  • 「なぜこのスタイルが当たっているのか」を理解するには詳細度とカスケードの仕組みが重要

次の章では、スタイルを当てる対象を指定するセレクタの種類と使い分けを学びます。