ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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 と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?