はじめに

Webサイトを閲覧していると、文字のサイズや色、背景のデザイン、要素の配置など、見た目の美しさに目を奪われることがあります。これらのスタイリングを担当しているのがCSSです。

CSSは、HTMLで記述されたWebページの「見た目」を定義するためのスタイルシート言語です。HTMLがWebページの構造と内容を決めるのに対し、CSSはその構造をどのように表示するかを指定します。

本記事では、CSSをこれから学び始める方に向けて、以下の内容を解説します。

  • CSSとは何か、その役割と歴史
  • HTMLとCSSの関係性
  • CSSの3つの記述方法(インライン・内部・外部スタイルシート)
  • CSSの基本構文(セレクタ・プロパティ・値)
  • 外部スタイルシートを使った実践的なスタイル適用

CSSとは何か

CSSの定義と役割

CSSは「Cascading Style Sheets」の略称で、Webページの見た目を制御するためのスタイルシート言語です。W3C(World Wide Web Consortium)が策定する標準仕様に基づいており、すべての主要なWebブラウザでサポートされています。

MDN Web Docsでは、CSSを次のように定義しています。

CSS(Cascading Style Sheets、カスケーディング・スタイル・シート)は、HTML や XML で書かれた文書の表示方法を記述するためのスタイルシート言語です。

CSSの「Cascading(カスケーディング)」とは「滝のように流れ落ちる」という意味で、複数のスタイル定義が段階的に適用される仕組みを表しています。この仕組みにより、同じ要素に対して複数のスタイルが定義された場合でも、優先順位に従って最終的なスタイルが決定されます。

HTMLとCSSの関係

HTML、CSS、JavaScriptの3つは、現代のWeb開発において欠かせない基盤技術です。それぞれの役割は明確に分かれています。

graph LR
    A[HTML] -->|構造| D[Webページ]
    B[CSS] -->|装飾| D
    C[JavaScript] -->|動作| D
    style A fill:#e34c26,color:#fff
    style B fill:#264de4,color:#fff
    style C fill:#f7df1e,color:#000
    style D fill:#6c757d,color:#fff
技術 役割 具体例
HTML 構造・内容 見出し、段落、リンク、画像の配置
CSS 装飾・スタイル 色、フォント、余白、レイアウト
JavaScript 動作・振る舞い クリック処理、アニメーション、データ取得

この役割分担により、HTMLファイルを修正せずにCSSだけを変更することで、Webサイト全体のデザインを一括で更新できます。これを「構造と表現の分離」と呼び、保守性と再利用性を高める設計原則として広く採用されています。

CSSの歴史と進化

CSSは1996年にW3Cによって最初の仕様「CSS1」が勧告されました。以来、Web技術の進化とともにCSSも大きく発展してきました。

バージョン 勧告年 主な特徴
CSS1 1996年 フォント、色、余白など基本的なスタイル
CSS2 1998年 位置指定(position)、メディアタイプ
CSS2.1 2011年 CSS2の仕様を整理・修正
CSS3 2011年〜 モジュール化、Flexbox、Grid、アニメーション

CSS3以降は、機能ごとに「モジュール」として仕様が策定されるようになりました。これにより、ブラウザベンダーは個別のモジュールを段階的に実装でき、新機能の導入がスムーズになっています。

現在では、FlexboxやCSS Gridといったレイアウト手法、カスタムプロパティ(CSS変数)、コンテナクエリなど、高度な機能がモダンブラウザで利用可能です。

CSSの3つの記述方法

CSSをHTMLに適用するには、3つの方法があります。それぞれの特徴と使い分けを理解しましょう。

インラインスタイル

HTMLタグのstyle属性に直接CSSを記述する方法です。

1
<p style="color: blue; font-size: 16px;">このテキストは青色で16pxのサイズです。</p>

メリット

  • 特定の要素にだけスタイルを適用したい場合に便利
  • JavaScriptから動的にスタイルを変更する際に使用

デメリット

  • HTMLとCSSが混在し、コードの可読性が低下する
  • 同じスタイルを複数の要素に適用する場合、コードが重複する
  • スタイルの一括変更が困難

インラインスタイルは、一時的なテストやJavaScriptによる動的なスタイル変更以外では、使用を避けることが推奨されます。

内部スタイルシート(埋め込み)

HTMLドキュメントの<head>セクション内に<style>タグを使用してCSSを記述する方法です。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>内部スタイルシートの例</title>
    <style>
        p {
            color: blue;
            font-size: 16px;
        }
        h1 {
            color: navy;
            border-bottom: 2px solid navy;
        }
    </style>
</head>
<body>
    <h1>CSSの学習</h1>
    <p>このテキストにスタイルが適用されます。</p>
</body>
</html>

メリット

  • 1つのHTMLファイル内でスタイルを完結できる
  • 外部ファイルへのHTTPリクエストが不要

デメリット

  • 複数ページで同じスタイルを使う場合、各ページに同じCSSを記述する必要がある
  • ブラウザのキャッシュが効かず、ページ読み込みのたびにCSSを取得する

内部スタイルシートは、単一ページのWebサイトや、プロトタイプの作成時に使用されることがあります。

外部スタイルシート

CSSを別ファイル(.cssファイル)として作成し、HTMLから<link>タグで読み込む方法です。実務ではこの方法が最も推奨されます。

CSSファイル(style.css)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
/* 見出しのスタイル */
h1 {
    color: navy;
    border-bottom: 2px solid navy;
    padding-bottom: 10px;
}

/* 段落のスタイル */
p {
    color: #333;
    font-size: 16px;
    line-height: 1.8;
}

HTMLファイル(index.html)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>外部スタイルシートの例</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <h1>CSSの学習</h1>
    <p>外部スタイルシートが適用されています。</p>
</body>
</html>

メリット

  • 複数のHTMLファイルで同じCSSを共有できる
  • CSSファイルがブラウザにキャッシュされ、ページ読み込みが高速化する
  • HTMLとCSSの分離により、保守性と可読性が向上する
  • チーム開発でHTMLとCSSの作業を分担しやすい

デメリット

  • 初回アクセス時に外部ファイルへのHTTPリクエストが発生する

外部スタイルシートは、実務で最も使用される方法です。特に複数ページで構成されるWebサイトでは、スタイルの一元管理と再利用性の観点から、外部スタイルシートを使用することが標準的なベストプラクティスとなっています。

3つの方法の使い分け

方法 推奨される場面 実務での使用頻度
インラインスタイル 動的なスタイル変更、一時的なテスト
内部スタイルシート 単一ページ、プロトタイプ
外部スタイルシート 複数ページ構成のWebサイト 高(推奨)

CSSの基本構文

CSSは「セレクタ」「プロパティ」「値」の3つの要素で構成されます。この基本構文を理解することが、CSS習得の第一歩です。

CSSルールの構造

CSSの記述単位を「ルール」または「ルールセット」と呼びます。1つのルールは次の構造を持ちます。

graph LR
    A[セレクタ] --> B[宣言ブロック]
    B --> C[プロパティ: 値;]
    B --> D[プロパティ: 値;]
    style A fill:#4285f4,color:#fff
    style B fill:#34a853,color:#fff
    style C fill:#fbbc04,color:#000
    style D fill:#fbbc04,color:#000
1
2
3
4
セレクタ {
    プロパティ: ;
    プロパティ: ;
}

具体例を見てみましょう。

1
2
3
4
5
h1 {
    color: navy;
    font-size: 24px;
    margin-bottom: 20px;
}
要素 説明 上記例での値
セレクタ スタイルを適用する対象を指定 h1
プロパティ 変更するスタイルの種類 colorfont-sizemargin-bottom
プロパティに設定する具体的な値 navy24px20px

セレクタの種類

セレクタは、どのHTML要素にスタイルを適用するかを指定します。基本的なセレクタには以下の種類があります。

要素セレクタ(タイプセレクタ)

HTMLタグ名をそのまま指定します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
/* すべてのp要素に適用 */
p {
    color: #333;
    line-height: 1.8;
}

/* すべてのh2要素に適用 */
h2 {
    color: navy;
    border-left: 4px solid navy;
    padding-left: 10px;
}

クラスセレクタ

HTMLのclass属性に指定した値を使用します。セレクタの先頭にピリオド(.)を付けます。

1
2
<p class="highlight">強調されたテキスト</p>
<p class="note">補足情報</p>
1
2
3
4
5
6
7
8
9
.highlight {
    background-color: yellow;
    font-weight: bold;
}

.note {
    color: gray;
    font-size: 14px;
}

クラスセレクタは、複数の要素に同じスタイルを適用する場合に最も使用される方法です。

IDセレクタ

HTMLのid属性に指定した値を使用します。セレクタの先頭にシャープ(#)を付けます。

1
<header id="main-header">サイトヘッダー</header>
1
2
3
4
5
#main-header {
    background-color: navy;
    color: white;
    padding: 20px;
}

IDセレクタは詳細度(優先度)が高いため、スタイルの上書きが困難になることがあります。レイアウトの大枠を定義する場合や、JavaScriptからの参照に使用することが多いです。

ユニバーサルセレクタ

すべての要素に適用するセレクタです。アスタリスク(*)を使用します。

1
2
3
4
5
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

リセットCSSやノーマライズCSSでよく使用されます。

プロパティと値

CSSには数百種類のプロパティが存在します。よく使用される基本的なプロパティを紹介します。

テキスト関連のプロパティ

1
2
3
4
5
6
7
8
9
p {
    color: #333;              /* 文字色 */
    font-size: 16px;          /* 文字サイズ */
    font-weight: bold;        /* 文字の太さ */
    font-family: sans-serif;  /* フォントの種類 */
    line-height: 1.8;         /* 行の高さ */
    text-align: center;       /* 文字の配置 */
    text-decoration: underline; /* 下線などの装飾 */
}

背景関連のプロパティ

1
2
3
4
5
6
7
div {
    background-color: #f5f5f5;                 /* 背景色 */
    background-image: url('image.jpg');        /* 背景画像 */
    background-size: cover;                    /* 背景画像のサイズ */
    background-position: center;               /* 背景画像の位置 */
    background-repeat: no-repeat;              /* 背景画像の繰り返し */
}

ボックスモデル関連のプロパティ

1
2
3
4
5
6
7
div {
    width: 300px;          /* 幅 */
    height: 200px;         /* 高さ */
    margin: 20px;          /* 外側の余白 */
    padding: 15px;         /* 内側の余白 */
    border: 1px solid #ccc; /* 境界線 */
}

値の単位

CSSで使用する値には、さまざまな単位があります。

単位 種類 説明 使用例
px 絶対単位 ピクセル(画面上の1点) font-size: 16px;
em 相対単位 親要素のフォントサイズを基準 margin: 1.5em;
rem 相対単位 ルート要素(html)のフォントサイズを基準 font-size: 1rem;
% 相対単位 親要素のサイズを基準とした割合 width: 50%;
vw 相対単位 ビューポート幅の1% width: 100vw;
vh 相対単位 ビューポート高さの1% height: 100vh;

レスポンシブデザインを実現するためには、rem%vw/vhなどの相対単位を適切に使い分けることが重要です。

コメントの書き方

CSSファイル内にコメントを記述するには、/**/で囲みます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
/* これはコメントです */
h1 {
    color: navy; /* 見出しの色 */
    font-size: 24px;
}

/*
  複数行のコメントも
  このように記述できます
*/

コメントを活用することで、CSSの意図や構造を明確にし、チームでの開発や将来のメンテナンスを容易にします。

実践:外部スタイルシートでWebページをスタイリングする

ここまで学んだ知識を活かして、実際に外部スタイルシートを使ってWebページをスタイリングしてみましょう。

実行環境

  • テキストエディタ(VS Code推奨)
  • Webブラウザ(Chrome、Firefox、Edge、Safariなど)

前提条件

  • HTMLの基本的なタグ構造を理解していること
  • ファイルの作成と保存ができること

ファイル構成

以下の2つのファイルを同じフォルダ内に作成します。

project/
├── index.html
└── style.css

HTMLファイルの作成

index.html

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSSの基礎学習</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <header class="site-header">
        <h1>CSS入門講座</h1>
        <p class="tagline">Webデザインの基礎を学ぼう</p>
    </header>

    <main class="main-content">
        <section class="intro">
            <h2>CSSとは</h2>
            <p>
                CSSはWebページの見た目を制御するスタイルシート言語です。
                HTMLで構造を定義し、CSSで装飾を行うことで、
                美しく読みやすいWebページを作成できます。
            </p>
        </section>

        <section class="features">
            <h2>CSSでできること</h2>
            <ul>
                <li>文字の色やサイズを変更する</li>
                <li>背景色や背景画像を設定する</li>
                <li>要素の配置やレイアウトを制御する</li>
                <li>アニメーションや効果を追加する</li>
            </ul>
        </section>
    </main>

    <footer class="site-footer">
        <p>CSS入門講座 2026</p>
    </footer>
</body>
</html>

CSSファイルの作成

style.css

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
/* リセットとベーススタイル */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Helvetica Neue', Arial, 'Hiragino Sans', sans-serif;
    line-height: 1.8;
    color: #333;
    background-color: #f9f9f9;
}

/* ヘッダー */
.site-header {
    background-color: #264de4;
    color: white;
    text-align: center;
    padding: 40px 20px;
}

.site-header h1 {
    font-size: 32px;
    margin-bottom: 10px;
}

.tagline {
    font-size: 16px;
    opacity: 0.9;
}

/* メインコンテンツ */
.main-content {
    max-width: 800px;
    margin: 0 auto;
    padding: 40px 20px;
}

/* セクション共通スタイル */
section {
    background-color: white;
    border-radius: 8px;
    padding: 30px;
    margin-bottom: 30px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

section h2 {
    color: #264de4;
    font-size: 24px;
    margin-bottom: 20px;
    padding-bottom: 10px;
    border-bottom: 2px solid #264de4;
}

section p {
    margin-bottom: 15px;
}

/* リストスタイル */
ul {
    list-style-type: none;
}

li {
    padding: 10px 0;
    padding-left: 25px;
    position: relative;
}

li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 8px;
    height: 8px;
    background-color: #264de4;
    border-radius: 50%;
}

/* フッター */
.site-footer {
    background-color: #333;
    color: white;
    text-align: center;
    padding: 20px;
    font-size: 14px;
}

期待される結果

ブラウザでindex.htmlを開くと、以下のようなスタイルが適用されたページが表示されます。

  • 青色(#264de4)のヘッダーに白文字でタイトルが表示される
  • コンテンツエリアは中央揃えで、最大幅800pxに制限される
  • 各セクションは白背景のカードデザインで、影が付いている
  • 見出しには青色の下線が引かれている
  • リスト項目の前に青い丸印が表示される
  • フッターは濃いグレーの背景に白文字で表示される

CSSを学ぶ上での注意点

ブラウザ間の差異

CSSは主要なブラウザでサポートされていますが、新しいプロパティや値は古いブラウザでは動作しないことがあります。Can I use(https://caniuse.com/)で、使用したいCSSプロパティのブラウザサポート状況を確認することをおすすめします。

デベロッパーツールの活用

ブラウザのデベロッパーツール(Chrome DevTools、Firefox Developer Toolsなど)を使うと、適用されているCSSを確認したり、リアルタイムで値を変更してプレビューしたりできます。CSSのデバッグには欠かせないツールです。

Chrome DevToolsを開くには、以下の方法があります。

  • Windowsの場合:F12キーまたはCtrl + Shift + I
  • Macの場合:Cmd + Option + I

CSSの学習ロードマップ

CSSの基本を理解したら、次のステップとして以下のトピックを学ぶことをおすすめします。

  1. セレクタの詳細:子孫セレクタ、隣接セレクタ、疑似クラス、疑似要素
  2. 詳細度とカスケード:スタイルの優先順位を理解する
  3. ボックスモデル:margin、padding、borderの仕組み
  4. Flexbox:柔軟な1次元レイアウト
  5. CSS Grid:強力な2次元レイアウト
  6. レスポンシブデザイン:メディアクエリを使った画面サイズ対応

まとめ

本記事では、CSSの基礎について以下の内容を解説しました。

  • CSSは「Cascading Style Sheets」の略で、Webページの見た目を制御するスタイルシート言語
  • HTMLが構造、CSSが装飾、JavaScriptが動作を担当するという役割分担
  • CSSの記述方法は3種類(インライン・内部・外部スタイルシート)あり、外部スタイルシートが推奨される
  • CSSの基本構文は「セレクタ { プロパティ: 値; }」という形式
  • セレクタには要素セレクタ、クラスセレクタ、IDセレクタなどがある

CSSを習得することで、HTMLで作成したWebページに視覚的な表現力を加え、ユーザーにとって見やすく使いやすいデザインを実現できます。まずは本記事で作成した実践例を参考に、さまざまなプロパティを試してみてください。

参考リンク