この記事でわかること
- CSSが何を担当する言語かを、HTMLとの役割分担で整理
- 基本構文「セレクター・プロパティ・値」の読み方と書き方
- 外部・内部・インラインの3つの書き方と使い分け
- レイアウトの土台になるボックスモデルとセレクターの基本
- 同じ要素にスタイルが重なったときの優先順位(詳細度)
結論を先に書きます
CSS(Cascading Style Sheets)は、Webページの見た目(デザイン)を定義する言語です。HTMLが「構造と内容」を担当するのに対し、CSSは色・フォント・レイアウト・余白といった「スタイル」を受け持ちます。
家にたとえると、HTMLが骨格と間取り、CSSが内装と壁紙です。HTMLだけでも文章は表示されますが、スタイルのない白黒のページになります。CSSを加えて初めて、見栄えのするWebページが完成します。
- CSSの役割は見た目の定義。中身はHTML、見せ方はCSSと分担する
- 基本構文は
セレクター { プロパティ: 値; }の1パターンだけ - 書き方は外部・内部・インラインの3つ。実務は外部スタイルシートが基本
- レイアウトの理解はボックスモデルと詳細度から始まる
CSSを学ぶ前に、土台となる構造側の知識を整理しておくと理解が早くなります。HTMLの全体像はHTMLとは?初心者向け解説でまとめています。
CSSとは何か:HTMLとの役割の違い
CSSは、HTMLで作った「構造」に対して見た目のルールを上書きしていく言語です。HTMLとCSSは別々の言語ですが、必ずセットで使います。
役割を分けて考えると、迷いにくくなります。「何を書くか」はHTML、「どう見せるか」はCSSです。たとえば見出しを大きく青くしたいとき、見出しという要素を作るのがHTML、大きさと色を決めるのがCSSになります。
<!-- HTML(構造・内容) --> <h1>こんにちは</h1> <p>CSSを学んでいます。</p>
/* CSS(スタイル・見た目) */ h1 { color: #0066cc; font-size: 32px; } p { color: #333; line-height: 1.8; }
この2つを組み合わせると、青くて大きな見出しと、読みやすい行間の本文が表示されます。構造と見た目を分けておくと、デザインを変えたいときにHTMLを触らずCSSだけ修正できる、というのが大きな利点です。
CSSの基本構文:セレクター・プロパティ・値
CSSの構文は、覚えることが少ないのが特徴です。基本の型は次の1パターンだけになります。
セレクター { プロパティ: 値; プロパティ: 値; }
3つの言葉の関係を表で整理します。
| 要素 | 説明 | 例 |
|---|---|---|
| セレクター | スタイルを適用する対象 | h1 p .class #id |
| プロパティ | 変更したいスタイルの種類 | color font-size margin |
| 値 | プロパティに設定する内容 | red 16px auto |
「どの要素に(セレクター)、何を(プロパティ)、どうするか(値)」という3点を書く、と考えると読み解きやすくなります。プロパティと値の間はコロン、行末はセミコロンで区切るのがルールです。
CSSの書き方3種類と使い分け
CSSをHTMLに適用する方法は3つあります。それぞれ向き不向きがあり、実務では外部スタイルシートが基本です。
- 外部スタイルシート(推奨・複数ページで使い回せる)
- 内部スタイルシート(1ページ限定のスタイル向け)
- インラインスタイル(特定要素に一時的に当てる用途のみ)
1. 外部スタイルシート(推奨)
CSSを別ファイル(style.css)に書き、HTMLからリンクで読み込む方法です。1つのCSSファイルを複数ページで共有できるため、管理しやすく修正も一括で反映できます。
<!-- HTMLのheadタグ内 --> <link rel="stylesheet" href="style.css">
/* style.css */ body { font-family: sans-serif; color: #333; }
2. 内部スタイルシート
HTMLファイルの 内に タグでまとめて書く方法です。1ページだけに適用したいスタイルに向いています。
<head> <style> h1 { color: blue; } </style> </head>
3. インラインスタイル
HTML要素に直接 style 属性で書く方法です。特定の要素だけに一時的なスタイルを当てる、限定的な場面で使います。多用すると管理が難しくなるため、常用は避けます。
<p style="color: red; font-weight: bold;">このテキストは赤い太字</p>
属性を直接書くという点では、リンクやその他のHTML属性と考え方が共通しています。属性の基本はaタグの使い方(属性の書き方)もあわせて確認すると理解が深まります。
主要なCSSプロパティ早見表
プロパティは数多くありますが、最初に覚えるべきものは限られています。よく使うものをカテゴリ別に整理します。
テキスト系
| プロパティ | 説明 | 例 |
|---|---|---|
color | 文字色 | color: #333; |
font-size | 文字サイズ | font-size: 16px; |
font-weight | 文字の太さ | font-weight: bold; |
font-family | フォントの種類 | font-family: sans-serif; |
line-height | 行間 | line-height: 1.8; |
text-align | テキストの整列 | text-align: center; |
text-decoration | 下線など | text-decoration: none; |
letter-spacing | 文字間隔 | letter-spacing: 0.05em; |
ボックス(余白・サイズ)系
| プロパティ | 説明 | 例 |
|---|---|---|
width | 横幅 | width: 100%; |
height | 高さ | height: 200px; |
padding | 内側の余白 | padding: 16px; |
margin | 外側の余白 | margin: 0 auto; |
border | 枠線 | border: 1px solid #ccc; |
border-radius | 角の丸み | border-radius: 8px; |
box-shadow | 影 | box-shadow: 0 2px 8px rgba(0,0,0,.1); |
背景系
| プロパティ | 説明 | 例 |
|---|---|---|
background-color | 背景色 | background-color: #f5f5f5; |
background-image | 背景画像 | background-image: url(bg.jpg); |
background-size | 背景画像のサイズ | background-size: cover; |
まずはテキスト系から覚えると、見た目の変化が分かりやすく学習が進みます。表組みなど構造側のタグと組み合わせるときは、tableタグの書き方も参考になります。
ボックスモデル:レイアウト理解の土台
CSSでレイアウトを組むうえで、最初の壁になりやすいのがボックスモデルです。すべてのHTML要素は「箱(ボックス)」として扱われる、という考え方になります。
1つの箱は、内側から外側に向かって content・padding・border・margin の4層で構成されます。この入れ子構造を理解すると、余白がうまく効かない、要素が重なる、といったトラブルを切り分けられるようになります。
┌─────────────────────────────┐ │ margin(外側余白) │ │ ┌───────────────────────┐ │ │ │ border(枠線) │ │ │ │ ┌─────────────────┐ │ │ │ │ │ padding(内側余白) │ │ │ │ │ │ ┌───────────┐ │ │ │ │ │ │ │ content │ │ │ │ │ │ │ │ (コンテンツ) │ │ │ │ │ │ │ └───────────┘ │ │ │ │ │ └─────────────────┘ │ │ │ └───────────────────────┘ │ └─────────────────────────────┘
| 領域 | 説明 |
|---|---|
content | テキスト・画像などの実際の内容 |
padding | contentとborderの間の余白 |
border | 枠線 |
margin | 要素の外側の余白(他の要素との距離) |
「要素の中の余白なら padding、要素同士の間隔なら margin」と覚えておくと、迷ったときの判断が速くなります。
CSSセレクターの基本
セレクターは「どの要素にスタイルを当てるか」を指定する部分です。種類ごとの書き方を押さえると、狙った要素にピンポイントで効かせられます。
| セレクター | 意味 | 例 |
|---|---|---|
| タグセレクター | すべての指定タグ | p { } |
| クラスセレクター | class属性が一致する要素 | .btn { } |
| IDセレクター | id属性が一致する要素 | #header { } |
| 子孫セレクター | 指定要素内のすべて | nav a { } |
| 直接の子セレクター | 直接の子要素のみ | ul > li { } |
| 擬似クラス | 特定の状態の要素 | a:hover { } |
実務でよく使うのは、再利用しやすいクラスセレクターです。マウスを乗せたときの見た目を変える擬似クラスと組み合わせると、ボタンなどに動きを付けられます。
/* クラスセレクター */ .card { background: white; border-radius: 8px; padding: 24px; }
/* 擬似クラス(ホバー時) */ .btn:hover { background-color: #004499; cursor: pointer; }
CSSの優先順位(詳細度)
同じ要素に複数のスタイルが当たると、どれが勝つのかが問題になります。ここで効いてくるのが詳細度(Specificity)で、強いルールが優先される仕組みです。
| セレクター | 詳細度(強さ) |
|---|---|
| インラインスタイル | 最も強い |
IDセレクター #id | 強 |
クラスセレクター .class | 中 |
タグセレクター p | 弱 |
「思った通りに色が変わらない」という初心者のつまずきは、たいてい詳細度が原因です。弱いセレクターで書いたスタイルが、強いセレクターに上書きされているケースが多いと考えると、原因を探しやすくなります。インラインスタイルを多用しないほうがよいのも、詳細度が強すぎて後から制御しにくくなるためです。
よくある質問
Q1:CSSとHTMLはどちらを先に学ぶべきですか?
HTMLが先です。CSSは「HTMLで作った構造に見た目を付ける」言語のため、土台となるHTMLの基本構造を先に理解しておくと、CSSの学習がスムーズになります。
学習の順番に迷う場合は、HTMLの基本構造から入り、次にCSSへ進む流れがおすすめです。
Q2:CSSの書き方はどれを使えばよいですか?
外部スタイルシートが基本です。複数ページで同じスタイルを使い回せ、修正も一括で反映できるため、実務でも学習でもまず外部ファイルに書くことをおすすめします。
インラインスタイルは詳細度が強く後から制御しにくいため、一時的な確認など限定的な用途にとどめます。
Q3:思った通りにスタイルが反映されません。なぜですか?
詳細度(優先順位)の上書きが多い原因です。弱いセレクターで書いたスタイルが、より強いセレクター(IDやインライン)に上書きされていないかを確認します。
ほかにも、CSSファイルの読み込み忘れ、セミコロンの付け忘れ、セレクターの記述ミスもよくある要因です。
Q4:CSSフレームワークは最初から使ったほうがよいですか?
まずは素のCSSで基礎を固めるのがおすすめです。フレームワークは便利ですが、ボックスモデルや詳細度といった仕組みを理解しないまま使うと、トラブル時に原因を切り分けられなくなります。
基本を一通り押さえたあとであれば、効率化の手段として取り入れる価値があります。
Q5:CSSの次は何を学べばよいですか?
レイアウトを組むFlexboxやGridへ進むのが自然な流れです。ボックスモデルと基本プロパティを理解したら、要素を横並びにしたり中央寄せにしたりするレイアウト手法を学ぶと、作れるものが一気に広がります。
学習全体の道筋はWebデザイン独学ロードマップで整理しています。
まとめ:CSSは「見た目の言語」として役割で理解する
最後に、この記事の要点を整理します。
- CSSはWebページの見た目(色・フォント・レイアウト・余白)を定義する言語
- 基本構文は
セレクター { プロパティ: 値; }の1パターンだけ - 書き方は3種類あり、外部スタイルシートで管理するのが基本
- ボックスモデル(content・padding・border・margin)がレイアウトの土台
- セレクターの詳細度(インライン > ID > クラス > タグ)を把握しておく
CSSは覚える構文が少なく、役割で理解すれば初心者でも十分に扱えます。基本を押さえたら、次はレイアウトを組むFlexboxへ進んでみましょう。Webデザイナーの仕事像をつかみたい方はWebデザイナーとは?仕事内容・なり方もあわせてどうぞ。
関連記事
免責事項
※本記事はWeb制作・HTML/CSSに関する公開情報をもとにした整理です。仕様やブラウザの挙動は変更される場合があるため、最新の仕様はW3Cなどの公式情報をご確認のうえご利用ください。

