【完全保存版】BEMとは?CSSクラス命名ルールを初心者向けに徹底解説|具体例で理解するBEM設計

【完全保存版】BEMとは?CSSクラス命名ルールを初心者向けに徹底解説|具体例で理解するBEM設計

2025.12.21

BEMとは何か?

BEM(ベム)とは、
CSSのクラス命名を分かりやすく・壊れにくくするための命名ルールです。

BEMは次の3つの要素から構成されます。

  • Block
  • Element
  • Modifier

この頭文字を取って BEM と呼ばれています。


なぜBEMが使われるのか?

CSSを書き続けていると、次のような悩みが出てきます。

  • class名を見ても役割が分からない
  • CSSの影響範囲が把握できない
  • 修正したら別のページが崩れた

BEMは、
「どこに・何のために使われているclassか」
を一目で分かるようにするための考え方です。


BEMの基本構造

BEMでは、次のような書き方をします。

Block__Element--Modifier

それぞれの役割を見ていきましょう。


Block(ブロック)とは?

Blockは、
それ単体で意味を持つ大きな部品です。

例:

  • header
  • card
  • button
  • nav
<div class="card"></div>

Blockは、
「ページの中で独立して存在できるもの」
と考えると分かりやすいです。


Element(エレメント)とは?

Elementは、
Blockの中に属する部品です。

<div class="card">
  <h2 class="card__title">タイトル</h2>
  <p class="card__text">本文</p>
</div>
card__title
card__text

ポイントは、
ElementはBlock単体では存在できないという点です。


Modifier(モディファイア)とは?

Modifierは、
見た目や状態の違いを表すためのclassです。

<button class="button button--primary">送信</button>
<button class="button button--secondary">戻る</button>
button--primary
button--secondary

色やサイズ、状態の違いを表現するときに使います。


BEM命名の具体例まとめ

カードUIの例

<div class="card card--featured">
  <h2 class="card__title">タイトル</h2>
  <p class="card__text">説明文</p>
</div>
  • card → Block
  • card__title → Element
  • card--featured → Modifier

class名を見るだけで構造が分かるのがBEMの強みです。


BEMを使うメリット

BEMを使うことで、次のメリットがあります。

  • class名の役割が明確になる
  • CSSの影響範囲が限定される
  • スタイルの衝突が起きにくい
  • チーム開発でも理解しやすい

特に、
あとから見直したときの分かりやすさは圧倒的です。


BEMでよくある間違い

ModifierをElementに付けてしまう

<!-- 悪い例 -->
<div class="card__title--large"></div>

Modifierは、
BlockまたはElementに追加するclassとして使います。

正しい例

<div class="card__title card__title--large"></div>

BEMは必ず守らなければいけないのか?

結論から言うと、
無理に使う必要はありません。

BEMは、

  • CSSが増えてきた
  • class命名で迷う
  • 設計を整理したい

と感じたときに、非常に役立つ考え方です。


初心者がBEMを使うときのコツ

最初は、次のポイントだけ意識してください。

  • BlockとElementを意識する
  • 見た目ではなく役割で命名する
  • Modifierは状態や種類に使う

完璧に書こうとせず、
考え方を取り入れることが大切です。


BEMとCSS設計の関係

BEMは、
CSS設計を助けるための命名ルールです。

  • CSS設計 → 考え方
  • BEM → 命名の具体ルール

という関係になります。


まとめ:BEMはclass命名の強力な味方

BEMを使うことで、

  • class名に迷わなくなる
  • CSSが読みやすくなる
  • 修正が怖くなくなる

というメリットがあります。

最初から完璧に使う必要はありません。

まずは、

  • Block
  • Element
  • Modifier

この3つを意識するところから始めてみてください。

CSSの理解が、一段レベルアップするはずです。

タグ:

#CSS #HTML #初心者向け #BEM #class命名