カテゴリ: CSS 更新日: 2026/01/10

CSSセレクタの命名規則とBEMの基本を徹底解説!初心者にもやさしいCSS設計ガイド

CSSセレクタの命名規則とBEMの基本
CSSセレクタの命名規則とBEMの基本

先生と生徒の会話形式で理解しよう

生徒

「CSSのセレクタ名って、どんな名前をつければいいんですか?」

先生

「いい質問ですね。CSSでは、セレクタ名のルールを決めておくと、コードがとても見やすくなりますよ。」

生徒

「ルールって、具体的にはどんな感じですか?」

先生

「今回は、セレクタの命名規則と『BEM(ベム)』という書き方の基本を、初心者でもわかるように説明しますね!」

1. CSSセレクタとは?なぜ命名ルールが大事なの?

1. CSSセレクタとは?なぜ命名ルールが大事なの?
1. CSSセレクタとは?なぜ命名ルールが大事なの?

まず「CSSセレクタ」とは、どの部分にスタイルを適用するかを指定するためのキーワードです。HTMLの中の要素に対して、「ここにCSSを適用してね」と伝える役割です。

たとえば、次のように指定します。


<style>
.title {
    color: red;
}
</style>

<h1 class="title">こんにちは</h1>
ブラウザ表示

この場合、class="title"という部分が「セレクタ」で、color: red;というCSSが適用されます。

でも、名前をなんとなく「abc」「box1」などにしてしまうと、どの要素か分かりづらくなってしまいます。

そのため、CSSセレクタには「分かりやすくて再利用しやすい名前」をつけることが重要なのです。

2. よくあるCSSセレクタの命名ルールとは?

2. よくあるCSSセレクタの命名ルールとは?
2. よくあるCSSセレクタの命名ルールとは?

CSSのセレクタ名には、以下のような基本ルールを守るのがおすすめです。

  • 英単語でわかりやすく書く(例:buttonmenu-item
  • 小文字とハイフン(-)で区切る(例:main-title
  • 意味のある名前にする(見た目ではなく、役割を表す)

たとえば、次のような書き方がよく使われます。


<style>
.site-header {
    background-color: lightblue;
}
</style>

<div class="site-header">ヘッダーエリア</div>
ブラウザ表示

このようにすると、コードを見ただけで「ここはサイトのヘッダー部分なんだな」とすぐに分かります。

3. CSSの命名がぐちゃぐちゃになるとどうなる?

3. CSSの命名がぐちゃぐちゃになるとどうなる?
3. CSSの命名がぐちゃぐちゃになるとどうなる?

実は、CSSで名前をてきとうにつけてしまうと、次のような問題が起こります。

  • どこにどのスタイルが適用されているか分からない
  • 同じ名前がいろんな場所で使われてしまう
  • レイアウトが崩れても、どのCSSが原因か分からない

そこで登場するのが、「BEM(ベム)」というCSSの命名ルールです。

4. BEM(ベム)とは?CSSセレクタの設計方法を学ぼう

4. BEM(ベム)とは?CSSセレクタの設計方法を学ぼう
4. BEM(ベム)とは?CSSセレクタの設計方法を学ぼう

BEM(Block Element Modifier)は、CSSを分かりやすく管理するための命名ルールのことです。英語で書くと「Block(ブロック)・Element(エレメント)・Modifier(モディファイア)」の頭文字を取ってBEMと呼ばれます。

このルールを使うと、どこにどんなCSSが効いているのかがすぐ分かるようになります。

それぞれの意味を見てみましょう。

  • Block(ブロック):部品のまとまり。例:cardmenuなど
  • Element(エレメント):ブロックの中の一部分。例:card__titlemenu__item
  • Modifier(モディファイア):状態やバリエーション。例:menu__item--active

書き方は下記のようになります。


<style>
.card {
    border: 1px solid #ccc;
    padding: 10px;
}
.card__title {
    font-size: 18px;
    font-weight: bold;
}
.card__text {
    font-size: 14px;
}
.card--highlight {
    background-color: yellow;
}
</style>

<div class="card card--highlight">
  <div class="card__title">カードのタイトル</div>
  <div class="card__text">カードの本文です。</div>
</div>
ブラウザ表示

このように、__(アンダースコア2つ)--(ハイフン2つ)を使って名前を区切ることで、「どこに属しているCSSか」「どんな状態なのか」がひと目でわかるようになります。

5. BEMのメリットとは?初心者にこそおすすめな理由

5. BEMのメリットとは?初心者にこそおすすめな理由
5. BEMのメリットとは?初心者にこそおすすめな理由

BEMのルールを使うと、以下のようなメリットがあります。

  • CSSがわかりやすく、読みやすい
  • 名前がかぶりにくく、トラブルが少ない
  • HTMLとCSSの関係がすぐに理解できる
  • 他の人と作業するときも、共有しやすい

特に初心者の方は、CSSで混乱しないようにするためにも、この「BEM」のルールを覚えておくと、とても便利です。

6. どんな名前にすればいい?BEMのネーミング例

6. どんな名前にすればいい?BEMのネーミング例
6. どんな名前にすればいい?BEMのネーミング例

ここでは、いくつかのパターンでBEMのネーミング例を紹介します。

  • button(ボタンの基本) → button
  • ボタンのテキスト部分button__text
  • ボタンがアクティブ状態button--active
  • メニューのアイテムmenu__item
  • メニューの見出しmenu__title

名前の中に、要素の「役割」や「状態」が分かるようにするのがコツです。

7. CSSセレクタとBEMで迷わないスタイル設計をしよう

7. CSSセレクタとBEMで迷わないスタイル設計をしよう
7. CSSセレクタとBEMで迷わないスタイル設計をしよう

CSSセレクタの命名には正解があるわけではありませんが、ルールを決めておくことで、後から自分で見返しても「これは何のスタイルだったかな?」と迷わずにすみます。

特に「BEM」は、初心者にとってとても使いやすいルールです。プロの現場でも広く使われていて、HTMLとCSSをしっかり整理して書けるようになります。

今後、ウェブページを作るときには「何のためのスタイルか?」を意識して、セレクタに名前をつけてみましょう!

まとめ

まとめ
まとめ

ここまでCSSセレクタの基本から命名規則、そしてBEMという構造的なCSS設計方法までじっくり学んできました。CSSのセレクタは単なる名前ではなく、ウェブページ全体の読みやすさや管理のしやすさに直結する大切な要素です。見た目だけでなく、コードの意味や役割がわかりやすくなるように名前をつけておくことで、あとから編集するときに迷いがなくなり、チームで作業する場面でもスムーズに意図が共有できるようになります。特に、HTMLとCSSの関係が複雑になっていくほど、セレクタ名の付け方がページ全体の「設計」と呼べるほど重要になっていきます。

また、BEM(Block Element Modifier)という考え方を取り入れることで、CSSの構造を階層的に捉えることができ、複数のページで同じ部品を扱う際にも誤解が生まれにくくなります。「ブロック」「エレメント」「モディファイア」という三つの概念をきちんと区別することにより、どこが部品の親なのか、どの部分がその構成要素なのか、またどんな状態変化を表すCSSなのかが明確になります。特に、エレメントに当たる部分には親ブロックを示す名前を含めることがBEMでは大切で、これがあることでCSSの見通しがとてもよくなります。階層を意識してHTMLを書く習慣が自然と身につき、CSS全体の整理整頓にもつながっていきます。

命名の際に大切なのは、見た目の印象ではなく「役割」を名前に表現することです。たとえば「赤いボタン」ではなく「送信ボタン」のように、機能や内容を反映した名前をつけることで、スタイルの意味がはっきりし、適用する判断がしやすくなります。見た目が変わっても名前がブレないため、長期的に保守しやすいコードになります。CSSセレクタの命名は慣れるまでは難しく感じるかもしれませんが、今回のようにルールを決めて書いていけば自然と統一感が生まれ、コードの質が高まっていきます。

BEMの書き方では、ブロック名のあとに二つのアンダースコアでエレメントを、二つのハイフンでモディファイアを表現します。このルールを守るだけでも、HTMLとCSSの構造が整理され、どこに何のスタイルが適用されているのか一目で把握できるようになります。特に複雑なデザインを扱う場面では、BEMのルールが大きな助けになります。名前付けがブレないため、CSSに無駄が生まれにくく、後から追加するコードとも衝突しにくくなるのです。ウェブサイトの規模が大きくなればなるほど、こういったルールに沿ったコーディングが大きな力を発揮します。

セレクタ名を工夫してCSSを設計することで、より見やすく、管理しやすく、迷いのないスタイルづくりができるようになります。ウェブ制作の基盤となるCSSセレクタと命名規則は、サイトを作る上で避けて通れない大事なスキルです。今回紹介した内容を参考に、実際の制作現場でも通用する記述方法をぜひ身につけ、より質の高いコードが書けるよう意識して取り組んでいきましょう。

BEMのサンプルコード


<style>
.profile {
    border: 1px solid #ccc;
    padding: 15px;
}
.profile__name {
    font-size: 20px;
    font-weight: bold;
}
.profile__description {
    font-size: 14px;
    margin-top: 8px;
}
.profile--highlight {
    background-color: #f9f7c0;
}
</style>

<div class="profile profile--highlight">
    <div class="profile__name">ユーザー名</div>
    <div class="profile__description">プロフィールの説明テキストです。</div>
</div>
ブラウザ表示
先生と生徒の振り返り会話

生徒

「BEMの書き方がわかると、CSSがこんなに整理されるんですね。役割がはっきりした名前って大事なんだと感じました。」

先生

「そうですね。意味のある名前をつければ、コードを読むときの迷いが減ります。BEMはその助けになる強力なルールなんですよ。」

生徒

「ブロックとエレメントとモディファイアの違いも理解できました。これからCSSを書くときに意識してみます。」

先生

「いいですね。慣れてくるとコードが自然と整理され、作業がとても楽になりますよ。」

生徒

「今回の内容を参考にして、より読みやすいCSSを書いていきたいと思います!」

先生

「その調子です。自分で試していくうちに、さらに理解が深まりますよ。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

CSSセレクタとは何ですか?初心者にもわかりやすくCSSの基本を教えてください

CSSセレクタとは、HTMLのどの部分にスタイルを適用するのかを指定するためのキーワードです。セレクタがあることで、特定の要素に色や文字サイズなどのデザインを適用できます。初心者がCSSを学ぶときは、この「どこにスタイルを適用するか」というCSSセレクタの基本を理解することが重要です。
2026年最新 スキルアップ・実践セミナー

【60分集中】Flexboxを完全攻略!最新CSS3で「崩れない・迷わない」モダンUI構築セミナー

「魅せる力」をコードで実現。CSS3でモダンWebデザインのプロトタイピングを。

本講座では、単に色を変えるだけではなく、「ユーザーを迷わせないUIデザイン」「崩れないレイアウト設計」の本質を学びます。最新のCSS3とモダンなレイアウト手法を通じて、プロの現場で通用する「美しさと機能性を両立した実装力」を最短距離で習得します。

具体的なワークショップ内容と環境

【つくるもの】
HTMLで作成した骨組みに対し、商用サイトでも採用される「スタイリッシュなカード型UI」や「レスポンシブなナビゲーション」を構築します。色の選定基準や余白(ホワイトスペース)の黄金比など、デザインの理論をコードに落とし込む工程を体験してください。

【開発環境】
フロントエンド開発の標準であるVisual Studio Code (VS Code)を継続使用。CSSの記述を効率化するプラグインや、ブラウザのデベロッパーツール(検証機能)を駆使して、リアルタイムでデザインを微調整するプロのワークフローを再現します。

この60分で得られる3つの技術資産

1. 現代のデファクトスタンダード「Flexbox」

要素の横並びや中央揃えを自由自在に操り、どんなデバイスでも崩れないレスポンシブな配置術を完全理解します。

2. メンテナンス性を高めるCSS設計の基礎

後から修正しやすい「壊れにくいコード」の書き方を伝授。プロの現場で必須となる命名規則の考え方を学びます。

3. パフォーマンスと美しさの両立

画像の最適化や軽量な装飾技法など、ページの表示速度を落とさずに高級感のある演出を行うテクニックを習得します。

※本講座は、HTMLの基礎を終えた後のステップアップ講座です。Webデザイナー、UIデザイナー、フロントエンドエンジニアへの道を切り開く「魅せる技術」を、モクモク独自のパーソナル指導で着実に定着させます。

【60分集中】Flexboxを完全攻略!最新CSS3で「崩れない・迷わない」モダンUI構築セミナー

リラックスしながら、学ぶことが大切です。しっかりと基礎を理解しましょう!

各回少人数・マンツーマン形式で徹底サポート

このセミナーの詳細・お申し込みはこちら
カテゴリの一覧へ
新着記事
New1
Bootstrap
Bootstrapテーブル入門:.table /.table-striped /.table-hover /.table-bordered をやさしく解説
New2
CSS
スマホの文字化け・崩れを防ぐ!メディアクエリで文字の改行と非表示を操る完全ガイド
New3
HTML
HTMLのvideo属性一覧を完全整理!初心者でもわかるposter・preload・loopの使い方
New4
Bootstrap
Bootstrap入力グループ完全ガイド|初心者でもわかる.input-groupの使い方
人気記事
No.1
Java&Spring記事人気No1
CSS
CSSのメディアタイプ完全ガイド!画面表示と印刷用スタイルを切り替える方法
No.2
Java&Spring記事人気No2
CSS
CSSで要素のサイズを自動調整!autoとfit-contentの使い方
No.3
Java&Spring記事人気No3
CSS
CSSのフレックスボックスで使うgapの使い方を完全ガイド!初心者でもわかる余白調整の基本
No.4
Java&Spring記事人気No4
CSS
レスポンシブデザインの要!ブレイクポイントの決め方とCSSの書き方ガイド
No.5
Java&Spring記事人気No5
CSS
CSSで要素を消す方法を完全ガイド!display:noneとvisibility:hiddenの違い
No.6
Java&Spring記事人気No6
CSS
CSSのmin-widthとmax-widthの違いを徹底解説!モバイルファースト設計の基本
No.7
Java&Spring記事人気No7
CSS
スマホの向きでデザインが変わる!CSSのorientation(向き)設定ガイド
No.8
Java&Spring記事人気No8
Bootstrap
Bootstrap Iconsの使い方を完全解説!初心者でもわかるアイコン基本操作ガイド