ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
クラスセレクタとは
クラスセレクタは、HTML の class 属性値を CSS から指定するためのセレクタです。ドット(.)に続けてクラス名を書き、その値を持つすべての要素にスタイルを適用します。
同じ class 値は1 つのページ内で何度でも使えるため、ボタン・カード・見出しといった繰り返し使うパーツのスタイル定義に向いています。
基本構文
/* .subtitle クラスが付いた要素すべてに適用 */
.subtitle {
color: #fff;
font-size: 14px;
}<h2 class="subtitle">小見出し</h2>
<p class="subtitle">補足テキスト</p>
<div class="subtitle">どの要素でも適用される</div>
記法のバリエーション
| セレクタ | 意味 |
|---|---|
.btn | class="btn" を持つすべての要素 |
p.subtitle | <p class="subtitle"> のみ(要素を絞る) |
.btn.primary | btn と primary を両方持つ要素 |
.btn .icon | .btn の子孫にある .icon |
.btn > .icon | .btn の直接の子の .icon |
.btn, .link | .btn または .link(カンマで OR) |
HTML 側で複数クラスを付ける
class 属性はスペース区切りで複数のクラスを指定できます。これにより機能の重ね合わせ(基本ボタン + 配色バリアント)が表現できます。
<button class="btn primary">保存</button>
<button class="btn danger">削除</button>.btn { padding: 8px 16px; border-radius: 4px; }
.btn.primary { background: #3498db; color: #fff; }
.btn.danger { background: #e74c3c; color: #fff; }
詳細度(Specificity)
セレクタの優先度は (インライン, ID, クラス, 要素) の 4 桁で計算されます。クラスセレクタはクラスの桁を 1 つ増やします。
| セレクタ | 詳細度 |
|---|---|
p | 0,0,0,1 |
.subtitle | 0,0,1,0 |
p.subtitle | 0,0,1,1 |
.btn.primary | 0,0,2,0 |
#header | 0,1,0,0 |
style="..."(インライン) | 1,0,0,0 |
ID セレクタとの使い分け
| セレクタ | 記法 | 用途 |
|---|---|---|
| クラス | .name | 繰り返し使えるパーツのスタイル |
| ID | #name | ページ内で1 回だけの要素 |
実務では CSS は基本クラスセレクタで書き、ID はリンクのアンカーや JavaScript の参照に取っておく方針が主流です。
命名規則:BEM
クラスが増えると衝突や上書きでカオスになりがちです。BEM(Block / Element / Modifier)はクラス名を以下のように構造化する命名規則です。
<div class="card">
<h2 class="card__title">タイトル</h2>
<p class="card__body">本文</p>
<button class="card__button card__button--primary">OK</button>
</div>
- Block(
.card)— 独立した部品 - Element(
.card__title)— Block の構成要素。__ で繋ぐ - Modifier(
.card__button--primary)— 状態 / バリアント。-- で繋ぐ
属性セレクタとの違い
| 記法 | マッチ条件 |
|---|---|
.foo | class に foo を含む(スペース区切り) |
[class="foo"] | class が完全一致で foo |
[class~="foo"] | .foo と同じ意味(スペース区切りで含む) |
まとめ
- クラスセレクタは
.nameでclass属性を狙う - 同じクラスは複数要素に付けられ、一括スタイル変更に最適
.a.bで複数クラス AND、.a, .bでOR- 詳細度は 0,0,1,0。ID より弱く、要素より強い
- BEM などの命名規則で衝突を予防する
疑似クラスと組み合わせる
クラスセレクタは :hover や :nth-child(...) などの疑似クラスと自由に組み合わせられます。これによりホバーやフォーカス、特定位置の要素だけにスタイルを当てられます。よく使う組み合わせを挙げます。
| セレクタ | 意味 |
|---|---|
.btn:hover | マウスオーバー時の .btn |
.input:focus | フォーカス時の .input |
.list-item:nth-child(odd) | 奇数番目の .list-item(ゼブラストライプ) |
.menu li:first-child | .menu 内の最初の li |
.btn:not(.disabled) | 無効化されていない .btn だけ |
子孫セレクタ・直接子セレクタ・隣接セレクタ
クラスは単独で書くだけでなく、結合子と組み合わせて DOM 構造を絞り込めます。よく使う 4 種類を整理します。
| 結合子 | 例 | 意味 |
|---|---|---|
| スペース(子孫) | .card .title | .card の子孫の .title |
>(直接子) | .card > .title | .card の直接の子の .title |
+(隣接兄弟) | .title + .desc | .title の直後の兄弟の .desc |
~(一般兄弟) | .title ~ .desc | .title 以降の同じ親内のすべての兄弟の .desc |
JavaScript からクラスを操作する
状態(開閉 / 選択 / エラー)に応じてクラスを付け外しすると、スタイルと挙動を分離できます。classList API を使うのが現代的です。
const el = document.querySelector('.menu');
el.classList.add('is-open'); // 追加
el.classList.remove('is-open'); // 削除
el.classList.toggle('is-open'); // 反転
el.classList.contains('is-open'); // 判定
状態クラスの命名
| 慣習 | 意味 |
|---|---|
.is-active / .is-open / .is-disabled | 状態(state)クラス。動的に付け外し |
.has-error / .has-icon | 修飾(含む) |
.js-trigger / .js-modal | JavaScript 専用フック(スタイル非依存) |
関連
- セレクタ — CSS のターゲット指定全般
- ID セレクタ —
#nameで 1 つだけ指定 - 属性セレクタ —
[attr=value] - 詳細度 — セレクタの優先度計算
- class属性 — HTML 側のクラス指定
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- タイプセレクタ
- ユニバーサルセレクタ
- クラスセレクタ
- IDセレクタ
- CSS属性セレクタで要素を絞り込む
- 疑似クラス
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 Spring Frameworkのアノテーション一覧
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- PHPでのファイルアップロード方法|multipart/form-dataと$_FILES 2026-08-07 17:15:57
- PHP $_SERVERとは|DOCUMENT_ROOT・PHP_SELFなど主な要素 2026-08-07 17:15:57
- Scratchのアカウントの作り方|メールアドレスとユーザー名の登録手順 2026-08-07 17:15:57
- djangoにおけるMVCアプリケーション実装例 2026-08-07 17:15:57
- Bluetoothとは|仕組み・BLEとClassicの違い・用途 2026-08-07 17:15:57
- Spring Bootのテスト入門|@SpringBootTestとJUnitでの単体・結合テスト 2026-08-07 17:15:57
- Java とは?言語仕様・JVM・主要フレームワーク一覧 2026-08-07 17:15:56
- インストール方法(Windows版) 2026-08-07 17:15:56
- APIキー取得方法 2026-08-07 17:15:56
- 【PHPフレームワーク】Laravelの使い方 2026-08-07 17:15:56
- Scratch 作品の公開方法 2026-08-07 17:15:56
- Google OAuth 2.0 認証の実装方法 2026-08-07 17:15:56
- データベースとは?RDB / NoSQL / SQL の基礎 2026-08-07 17:15:56
- インストール(eclipseプラグイン) 2026-08-07 17:15:56
- Spring Frameworkの使い方 2026-08-07 17:15:56
コメントを削除してもよろしいでしょうか?