2
1

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 3 years have passed since last update.

BEM(Block Element Modifier)とは

Last updated at Posted at 2020-10-21

HTMLのクラス名を好き勝手書いてしまうと、共同での開発で修正しづらいという問題が起きてしまいます。

そこで、後から改修しやすい設計にする手法の一つであるBEMについて解説していきます。

BEMとは

Block, Element, Modifierの頭文字をとってBEMという名前になっています。

BEMの書き方

Block, Elementはアンダースコア二つでつなぎます。
Element, Modifierはハイフン二つでつなぎます。

例:

qiita.css
/*Block*/
.list

/*Block, Element*/
.list__item

/*Block, Element, Modifier*/
.list__item--second

...少し慣れは必要そうです!

Block, Element, Modifierの違いについて

Block: ナビゲーションだとフォームなどの部品やヘッダー、フッターなどの大きなセクションのこと

Element: その部品を構成するための中身のこと

Modifier: 同じブロックではあるけれど、他とは状態や見た目が異なる場合に用いる。(例えば、クリックできるボタン、クリックできないボタンで他と異なるクラス名をつけるような時、Modifierを記述する。)

BEMのルール

Modifierがあるクラス名とないクラス名は両方記述します。
→CSSの記述が長くなり、修正しづらくなることを防ぐため。

単語はハイフン一つをつなげて記述します。(size-bigなど)

Sassを使うと便利!

無駄な記述を無くすことができます。

qiita.sass

.block {
 &__element {
  &--modifier {

  }
 }
 &__element-2 {
  &--modifier {
  
  }
 }
}

最後に

ルールを定めることで誰が見てもわかりやすくなることは、パフォーマンスの向上にもつながり大変便利だと感じました。
今後、意識していきたいと思っています。

最後まで記事を読んでいただきありがとうございます。今後もフロントエンドをメインにアウトプットをしていきたいと思っているのでよろしくお願い致します。

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?