CSSとは

CSS(Cascading Style Sheets)は、1996年にW3C(World Wide Web Consortium)によって標準化されたスタイルシート言語です。Webページの「見た目」を定義し、HTMLの「内容」と分離して管理することで、効率的なWeb制作を可能にします。

HTMLとCSSの役割分担

項目 HTML CSS
役割 文書の構造と内容 見た目とデザイン
記述内容 見出し、段落、リスト、リンクなど 色、フォント、配置、サイズなど
ファイル拡張子 .html .css
<h1>見出し</h1> h1 { color: blue; }
💡 「カスケーディング」の意味
Cascading(カスケーディング)は「滝のように流れ落ちる」という意味です。CSSでは、複数のスタイル定義がある場合、優先順位に従って「上から下へ」適用されます。より詳細な(具体的な)指定が優先されるルールがあります。

CSSの基本的な書き方

CSSは「セレクタ」「プロパティ」「値」の3つの要素で構成されます。

セレクタ {
    プロパティ: 値;
    プロパティ: 値;
}

/* 実例 */
h1 {
    color: blue;
    font-size: 24px;
    text-align: center;
}

CSSでできること

1. 色の指定

テキストや背景の色を自由に設定できます。

/* テキストの色 */
p {
    color: #1976D2;        /* 16進数カラーコード */
    color: rgb(25, 118, 210);  /* RGB値 */
    color: blue;           /* 色名 */
}

/* 背景色 */
body {
    background-color: #F5F5F5;
}

2. フォントの設定

文字の種類、サイズ、太さ、行間などを制御します。

body {
    font-family: 'Hiragino Kaku Gothic ProN', sans-serif;
    font-size: 16px;
    font-weight: 400;     /* 太さ(100〜900)*/
    line-height: 1.8;     /* 行間 */
    letter-spacing: 0.05em; /* 字間 */
}

3. レイアウトの構築

要素の配置、幅、高さ、余白を設定してページ全体の構成を作ります。

/* ボックスモデル */
.box {
    width: 300px;         /* 幅 */
    height: 200px;        /* 高さ */
    padding: 20px;        /* 内側の余白 */
    margin: 10px;         /* 外側の余白 */
    border: 1px solid #DDD; /* 枠線 */
}

/* フレックスボックスレイアウト */
.container {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* グリッドレイアウト */
.grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

4. レスポンシブデザイン

画面サイズに応じてデザインを変更できます。

/* PC用のスタイル */
.container {
    width: 1200px;
}

/* タブレット用(768px以下) */
@media (max-width: 768px) {
    .container {
        width: 100%;
        padding: 0 20px;
    }
}

/* スマホ用(480px以下) */
@media (max-width: 480px) {
    .container {
        padding: 0 10px;
    }
}

5. アニメーションと効果

要素に動きや変化を加えることができます。

/* ホバー時の変化 */
button {
    background: #1976D2;
    transition: all 0.3s;  /* 0.3秒かけて変化 */
}

button:hover {
    background: #FF6B35;
    transform: translateY(-2px);  /* 2px上に移動 */
}

/* アニメーション */
@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

.fade {
    animation: fadeIn 1s ease-in;
}

6. 要素の表示/非表示

/* 完全に非表示(スペースも消える) */
.hidden {
    display: none;
}

/* 透明にする(スペースは残る) */
.invisible {
    visibility: hidden;
}

/* 透明度で制御 */
.transparent {
    opacity: 0.5;  /* 50%透明 */
}

CSSの記述方法

方法1: 外部CSSファイル(推奨)

別ファイルにCSSを記述し、HTMLから読み込む方法です。最も一般的で保守性が高い方法です。

/* style.css ファイル */
body {
    font-family: sans-serif;
    color: #333;
}

h1 {
    color: #1976D2;
}
<!-- HTMLファイル -->
<head>
    <link rel="stylesheet" href="style.css">
</head>
✅ メリット
  • 複数のHTMLページで同じCSSを共有できる
  • CSSファイルがキャッシュされ、表示速度が向上
  • 管理・メンテナンスが容易
  • HTMLとCSSの役割分担が明確

方法2: 内部CSS(<style>タグ)

HTMLファイル内の<head>セクションに直接記述する方法です。

<head>
    <style>
        body {
            background: #F5F5F5;
        }
        h1 {
            color: blue;
        }
    </style>
</head>

使用場面:そのページ専用のスタイル、テスト用、メールHTML

方法3: インラインCSS(style属性)

HTML要素に直接style属性で記述する方法です。

<p style="color: red; font-size: 18px;">赤い文字</p>
⚠️ インラインCSSの注意点
  • 保守性が低く、変更が困難
  • コードが煩雑になりやすい
  • HTMLとCSSが混在して可読性が下がる
  • 基本的には避けるべき(緊急の微調整時のみ使用)

主要なCSSセレクタ

1. 要素セレクタ

HTML要素名で指定します。

p { color: black; }      /* すべての段落 */
h1 { font-size: 32px; }  /* すべてのh1見出し */

2. クラスセレクタ(.)

class属性で指定した名前の要素に適用します。

/* CSS */
.highlight {
    background: yellow;
}

/* HTML */
<p class="highlight">ハイライト表示</p>

3. IDセレクタ(#)

id属性で指定した一意の要素に適用します。

/* CSS */
#header {
    background: #1976D2;
}

/* HTML */
<div id="header">ヘッダー</div>

4. 子孫セレクタ

特定の要素内にある要素を指定します。

/* article内のすべてのpタグ */
article p {
    line-height: 1.8;
}

5. 複数セレクタ

複数の要素に同じスタイルを適用します。

h1, h2, h3 {
    color: #1976D2;
    font-weight: 600;
}

6. 擬似クラス

要素の特定の状態を指定します。

a:hover { color: red; }         /* マウスを乗せた時 */
a:visited { color: purple; }    /* 訪問済みリンク */
input:focus { border: 2px solid blue; } /* フォーカス時 */
li:first-child { font-weight: bold; }   /* 最初の要素 */
li:nth-child(odd) { background: #F5F5F5; } /* 奇数番目 */

7. 擬似要素

要素の特定の部分を装飾します。

p::first-line { font-weight: bold; }  /* 最初の行 */
p::first-letter { font-size: 2em; }   /* 最初の文字 */
h2::before { content: "▶ "; }         /* 要素の前に追加 */
h2::after { content: " ◀"; }          /* 要素の後に追加 */

CSSの優先順位(詳細度)

同じ要素に複数のCSSルールが適用される場合、以下の優先順位で決定されます。

優先順位(高い順)

  1. !important - 最優先(乱用は避けるべき)
  2. インラインスタイル - HTML要素のstyle属性
  3. IDセレクタ - #id
  4. クラスセレクタ、属性セレクタ、擬似クラス - .class, [type="text"], :hover
  5. 要素セレクタ、擬似要素 - p, h1, ::before
/* 優先順位の例 */
p { color: black; }                /* 詳細度: 1 */
.text { color: blue; }             /* 詳細度: 10 */
#main p { color: green; }          /* 詳細度: 101 */
p { color: red !important; }       /* 最優先 */

/* 結果: 上記すべてが適用される場合、
   !importantがあるので赤色になる */
⚠️ !importantの使用について
!importantは優先順位のルールを強制的に変更するため、後々のメンテナンスを困難にします。どうしても必要な場合のみ使用し、多用は避けましょう。

WordPressでのCSS追加方法

方法1: テーマカスタマイザー(初心者向け)

  1. WordPress管理画面で「外観」→「カスタマイズ」を開く
  2. 「追加CSS」をクリック
  3. CSSコードを入力
  4. 「公開」ボタンをクリック
✅ メリット
  • FTP不要で簡単に追加できる
  • リアルタイムプレビューで確認できる
  • テーマ更新時も設定が保持される

方法2: 子テーマのstyle.css(推奨)

子テーマを作成し、style.cssに記述します。

/*
Theme Name: My Child Theme
Template: parent-theme
*/

/* ここにカスタムCSSを記述 */
.custom-style {
    background: #F5F5F5;
    padding: 20px;
}

方法3: CSSプラグインを使用

「Simple Custom CSS」「WP Add Custom CSS」などのプラグインを使う方法もあります。

方法4: functions.phpで読み込み(上級者向け)

function add_custom_styles() {
    wp_enqueue_style(
        'custom-style',
        get_stylesheet_directory_uri() . '/custom.css',
        array(),
        '1.0.0'
    );
}
add_action('wp_enqueue_scripts', 'add_custom_styles');
💡 どの方法を選ぶべきか
  • 少量の調整 → カスタマイザーの「追加CSS」
  • 本格的なカスタマイズ → 子テーマのstyle.css
  • テーマに影響させたくない → CSSプラグイン

CSSフレームワーク

CSSフレームワークは、あらかじめ用意されたCSSのセットで、効率的にデザインを構築できます。

主要なCSSフレームワーク

1. Bootstrap

2. Tailwind CSS

3. Foundation

4. Bulma

💡 WordPressでCSSフレームワークを使う
多くのWordPressテーマは、Bootstrap や Tailwind CSS などのフレームワークをベースに作られています。テーマを選ぶ際は、どのフレームワークを使用しているか確認すると、カスタマイズが容易になります。

よくある質問(FAQ)

Q1. CSSを学ぶのに必要な時間は?
基本的な文法と主要プロパティは1〜2週間で習得できます。ただし、レスポンシブデザインやアニメーション、Flexbox/Gridなどの高度な技術を使いこなすには、実践を通じて数ヶ月の経験が必要です。
Q2. CSSだけでアニメーションは作れますか?
はい、可能です。CSS3では@keyframesルールとanimationプロパティを使って、JavaScriptなしで豊富なアニメーション効果を実現できます。ホバー効果、フェード、スライド、回転など、多彩な動きを作成できます。
Q3. CSSが反映されない場合の対処法は?
主な原因と対処法:
  • キャッシュの問題 → ブラウザのキャッシュをクリアする(Ctrl+F5)
  • セレクタの間違い → ブラウザの開発者ツールで確認
  • 優先順位の問題 → より詳細なセレクタを使用
  • 記述ミス → セミコロンや括弧の閉じ忘れを確認
Q4. レスポンシブデザインとは?
レスポンシブデザインは、画面サイズ(PC、タブレット、スマホ)に応じて、レイアウトやデザインを自動的に最適化する手法です。CSSのメディアクエリ(@media)を使って、異なる画面サイズごとにスタイルを切り替えます。
Q5. CSSとSassの違いは?
Sass(Syntactically Awesome Style Sheets)は、CSSを拡張したプリプロセッサ言語です。変数、ネスト、ミックスイン、関数などの機能を使って、より効率的にCSSを記述できます。Sassで書いたコードは、コンパイルして通常のCSSに変換してから使用します。
Q6. CSS GridとFlexboxの使い分けは?
  • Flexbox → 1次元レイアウト(横並びまたは縦並び)、ナビゲーション、カードの整列など
  • CSS Grid → 2次元レイアウト(縦横両方)、ページ全体の構造、複雑なグリッドレイアウト
両方を組み合わせて使うこともできます。

まとめ

CSSは、Webデザインを実現するための不可欠な技術です。HTMLが「何を表示するか」を定義するのに対し、CSSは「どのように表示するか」を制御します。

WordPressでは、テーマカスタマイザーの「追加CSS」機能を使えば、CSSの知識がなくても簡単にカスタマイズできます。より本格的にデザインを変更したい場合は、子テーマを作成してCSSを記述しましょう。

✅ CSS学習のポイント
  • 基本的なプロパティ(color, font-size, margin, paddingなど)から始める
  • ブラウザの開発者ツールで実際の動作を確認しながら学ぶ
  • レスポンシブデザインを意識する
  • CSSフレームワークも活用する
  • 実際のプロジェクトで繰り返し練習する

CSSを習得すれば、自分の思い通りのデザインを実現でき、Webサイトの魅力を大きく高めることができます。

関連用語