CSS設計とは、「読みやすく、再利用しやすく、壊れにくい」コードを書くためのルールのことです。その中でも世界的に有名な手法が「BEM」です。
BEMという名前は、以下の3つの頭文字から取られています。
| Block (ブロック) | パーツの塊。独立して存在できるもの。 例: .card, .menu, .button |
|---|---|
| Element (要素) | Blockを構成する中身。アンダースコア2つで繋ぐ。 例: .card__title, .card__img |
| Modifier (修飾子) | 状態や色の変化。ハイフン2つで繋ぐ。 例: .button--red, .button--large |
単語の区切り(.main-content)と、BEMの構造(__element)をパッと見て区別するためです。
「Elementの中にさらにElementを入れない」のがBEMの基本です。
■.card__list__item (深くなりすぎて複雑)
■.card__item (Block直下の要素として扱う)