CSSとは?HTMLとの違いと基本の書き方・セレクタ・優先順位を初心者向けに解説
2025.07.14

Webページの文字の色や大きさ、余白、レイアウトなど、見た目を決めているのがCSSです。HTMLと並んで、Web制作で最初に覚える言語の1つです。
この記事では、CSSとは何か、HTMLとの違いから、実際にCSSを書いて表示を変えるまでの手順、基本の書き方とルール、セレクタの種類、思いどおりに効かない原因になりやすい「優先順位」のしくみまでを、初心者向けに解説します。
CSSとは
CSSは「Cascading Style Sheets(カスケーディング・スタイル・シート)」の略で、Webページの見た目(スタイル)を指定するための言語です。「スタイルシート」と呼ばれることもあります。
HTMLとCSSの役割の違い
Webページは、HTMLとCSSの組み合わせでできています。HTMLが「何が書かれているか(文書の構造)」を、CSSが「どう見せるか(見た目)」を受け持ちます。
| HTML | CSS | |
|---|---|---|
| 役割 | 文書の構造と意味を決める | 見た目を決める |
| 指定する内容の例 | ここは見出し、ここは段落、ここはリンク | 見出しを青く大きく、段落の行間を広く |
| ファイルの拡張子 | .html | .css |
見た目をCSSに分けておくと、CSSファイルを1つ書き換えるだけで、サイト全体のデザインをまとめて変えられます。HTMLの側は、内容と構造に集中して書けます。
CSSでできること
- 文字の色、大きさ、太さ、フォントを変える
- 背景に色や画像を付ける、枠線や角丸、影を付ける
- 余白を調整し、要素を横に並べたり中央に寄せたりする
- スマートフォンとパソコンで、レイアウトを切り替える
- マウスを重ねたときの変化や、アニメーションを付ける
はじめてのCSS:表示を変えてみる
実際にCSSを書いて、ブラウザで表示が変わるところを確かめてみましょう。パソコンに同じフォルダを作り、次の2つのファイルを保存します。メモ帳などのテキストエディタで作れます(文字コードはUTF-8で保存してください)。
1. index.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>はじめてのCSS</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<h1>はじめてのCSS</h1>
<p class="lead">CSSで見た目を変えています。</p>
</body>
</html>2. style.css
h1 {
color: #1e6fd9;
font-size: 32px;
}
.lead {
padding: 12px;
background-color: #f3f4f5;
}index.html をブラウザで開くと、見出しが青く大きくなり、段落に灰色の背景が付きます。HTMLの <link> の行で、style.css を読み込んでいるためです。style.css の色や数字を書き換えて保存し、ブラウザを再読み込みすると、表示が変わることも確かめてみてください。
CSSの基本の書き方とルール
CSSは、「どの要素に(セレクタ)」「何を(プロパティ)」「どうするか(値)」の組み合わせで書きます。
セレクタ {
プロパティ: 値;
プロパティ: 値;
}たとえば h1 { color: #1e6fd9; } は、「h1要素の文字色(color)を #1e6fd9 にする」という意味です。{ } の中の「プロパティ: 値;」の1組を「宣言」と呼び、1つのセレクタにいくつでも書けます。
コメントを書く
/* と */ で囲んだ部分はコメントになり、表示には影響しません。何のための指定かをメモしておくと、後から読み返すときに役立ちます。
/* ヘッダーの背景 */
.header {
background-color: #ffffff;
}初心者が間違えやすいルール
- 「;」を付け忘れない:宣言の区切りの
;を忘れると、その宣言と次の宣言の両方が効かなくなります。最後の宣言の;は省略できますが、付けておくと後から宣言を足すときに間違えません。 - 全角の文字を混ぜない:全角スペースや全角の「:」「;」は、CSSの記号として認識されず、その指定が無視されます。見た目では気づきにくいので注意してください。
- 数字と単位の間にスペースを入れない:
16pxは正しく、16 pxは無視されます。 - クラス名の大文字・小文字は区別される:CSSに
.Leadと書くと、HTMLのclass="lead"には効きません。
CSSを書く3つの場所
| 書き方 | 書く場所 | 使いどころ |
|---|---|---|
| 外部CSS | 別の .css ファイルに書き、HTMLから <link> で読み込む | 通常はこれを使う。複数のページで同じCSSを使える |
| 内部CSS | HTMLの <style> の中に書く | そのページだけに使うCSS、試しに書くとき |
| インラインCSS | HTMLのタグの style 属性に書く | メールのHTMLなど、ほかの方法が使えないとき |
それぞれの書き方と使い分けは「外部CSS・内部CSS・インラインCSSの違いと使い分け」で詳しく解説しています。
セレクタの基本
セレクタは、CSSを適用する要素を選ぶための書き方です。よく使うものは次のとおりです。
| セレクタ | 書き方の例 | 選ばれる要素 |
|---|---|---|
| 要素(タイプ)セレクタ | p | すべての p 要素 |
| クラスセレクタ | .lead | class="lead" が付いた要素 |
| IDセレクタ | #header | id="header" が付いた要素(1ページに1つ) |
| 複数指定 | h1, h2 | h1 と h2 の両方 |
| 子孫セレクタ | .nav a | .nav の中にある a 要素すべて |
| 子セレクタ | .nav > a | .nav の直下にある a 要素だけ |
| 疑似クラス | a:hover | マウスを重ねている a 要素 |
| 全称セレクタ | * | すべての要素 |
次の例は、ナビゲーションの中のリンクを白くし、マウスを重ねたときに下線を付けます。
.nav a {
color: #ffffff;
text-decoration: none;
}
.nav a:hover {
text-decoration: underline;
}デザインを付けるときは、主にクラスセレクタを使います。同じクラスを複数の要素に付けられるので、使い回しがしやすいためです。
カスケードと優先順位のしくみ
CSSの名前にある「カスケード(cascade)」は、「段階的に流れ落ちる」という意味です。1つの要素に複数の指定が当てはまったとき、どれを使うかを順番に決めていくしくみを指します。「CSSが効かない」と感じる原因の多くは、このしくみにあります。
1. 後に書いたものが優先される
同じ強さのセレクタで同じプロパティを指定すると、後に書いたほうが使われます。次の例では、文字は赤になります。
.lead {
color: blue;
}
.lead {
color: red; /* こちらが使われる */
}2. セレクタが強いほうが優先される(詳細度)
セレクタには強さ(詳細度)があり、強いほうが、書いた順番に関係なく優先されます。強さは「IDの数 → クラス・疑似クラスの数 → 要素の数」の順に比べます。
| 強さ | 例 |
|---|---|
| 強い | HTMLの style 属性に直接書いた指定 |
| ↑ | IDセレクタ(#header) |
| ↑ | クラス・疑似クラス(.lead、:hover) |
| 弱い | 要素セレクタ(p、a) |
次の例では、要素セレクタの p を後に書いていますが、クラスセレクタのほうが強いので、class="lead" の段落は青になります。
.lead {
color: blue; /* こちらが使われる */
}
p {
color: red;
}セレクタを重ねると、その分だけ強くなります。.nav a(クラス1つ+要素1つ)は、a(要素1つ)より強くなります。「後に書いたのに効かない」ときは、前に書いたセレクタのほうが強くないか確認してください。
3. !important は最後の手段にする
値の後に !important を付けると、セレクタの強さに関係なく、その指定が優先されます。
.lead {
color: blue !important;
}便利に見えますが、多用すると、後から上書きするのにさらに !important が必要になり、どの指定が効いているのか分からなくなります。まずはセレクタの強さや書く順番で解決し、プラグインのCSSを上書きするときなど、ほかに方法がない場合だけ使いましょう。
4. 親の指定が子に引き継がれる(継承)
文字の色(color)やフォント(font-size、font-family)など、文字に関するプロパティの多くは、親要素に指定すると中の子要素にも引き継がれます。一方、枠線(border)や余白(margin、padding)、背景(background)は引き継がれません。
/* body に指定すると、ページ全体の文字に引き継がれる */
body {
color: #333333;
font-family: sans-serif;
}サイト全体の文字の色やフォントは、body にまとめて指定しておくのが基本です。
よく使うCSSプロパティ
最初に覚えておきたいプロパティは次のとおりです。
color:文字の色font-size:文字の大きさbackground-color:背景の色margin:要素の外側の余白padding:要素の内側の余白border:枠線width/height:幅と高さdisplay:表示のしかた(横に並べる、非表示にするなど)
用途別のプロパティの一覧と記述例は「CSSプロパティ一覧」にまとめています。
次に学ぶこと
基本の書き方が分かったら、次はレイアウトとスマートフォン対応を学ぶのがおすすめです。
- 要素を横に並べる:フレックスボックス(Flexbox)完全ガイド
- 縦と横の格子状に並べる:CSS Grid入門
- 画面幅に合わせて切り替える:メディアクエリの書き方
- 色や大きさを使い回す:CSS変数(カスタムプロパティ)の使い方と活用例
まとめ
- CSSはWebページの見た目を指定する言語で、HTMLが構造、CSSが見た目を受け持つ
- 「セレクタ { プロパティ: 値; }」の形で書き、通常は外部のCSSファイルに書いて読み込む
- 「;」の付け忘れや全角の文字が混ざると、指定が無視される
- デザインには主にクラスセレクタを使う
- 同じ強さなら後に書いたものが、強さが違えば強いセレクタが優先される。
!importantは最後の手段にする
CSSは、書いて表示を確かめることを繰り返すと、早く身に付きます。上の「はじめてのCSS」のファイルを書き換えながら、いろいろなプロパティを試してみてください。








