0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

BEM CSS 設計 覚書

Last updated at Posted at 2024-01-24

CSS 設計の本を読んだので、自分用の備忘録を残しておく。
ついでに誰かのお役に立てれば幸いです。

BEM とは何ぞや

コンポーネントベースで Web ページを設計する方法論の一つ。
以下の単語の頭文字を取って「BEM」と呼称する。

Block

A logically and functionally independent page component.

訳すならば「論理的または機能的に独立しているページ構成要素」といったところか。
要するに「画面に並べる HTML 要素群を 都合の良い単位 に区切ってブロックとして考えよ」という話である。

命名規則

一つのブロックとして扱う要素群の 一番外側の要素 へブロックの名称を表す class 属性値を付与する。

やってはいけないこと

ブロックのクラス名には _ を使用しないこと。
_ は後述する BEM の命名規則において特別な意味を持つ予約文字である。

より詳しく知りたい人

quick-start を参照。

Element

A composite part of block that can't be used separately from it.

「ブロックから切り離して使用することのできない部品群」。
要するに ブロックを構成する HTML 要素群一つ一つ のことを指す。

命名規則

ブロックそのものだけではなく、それを構成する個々の要素にも class 属性値を付与する。
個々の要素のクラス名は ブロック名__要素名 の命名規則を使用して名前を付ける。

やってはいけないこと

ブロック名__要素名__要素名 と名前を付けないこと。
細かくなり過ぎて後々メンテが大変になる為、御法度とされている。

より詳しく知りたい人

quick-start を参照。

Modifier

ブロックや個々の要素のバリエーションを作ったり
状態を表現する時に使用する。

命名規則

class 属性値は ブロック名__状態名__値 の命名規則を使用して名前を付ける。

やってはいけないこと

便利だからと言って、たくさん作り過ぎないこと。
数が多過ぎると把握できなくなり、後で管理ができなくなる。

より詳しく知りたい人

quick-start を参照。

BEM の利点

  • 命名規則にそって class 属性値を付与することでクラス名の重複が無くなり、 CSS スタイルの衝突を防ぐことができる。
  • CSS セレクタが単純になり、保守性が高まる。
  • HTML に目を通すことで、設計者が考えているページ構造を理解することができる。

参考資料

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?