PassFront
  1. PassFront
  2. База знаний
  3. Основы CSS

Для чего нужен БЭМ в CSS?

Основы CSS

БЭМ (Блок — Элемент — Модификатор) — методология именования классов, которая делает стили независимыми и понятными.

Как устроены имена

.card {}               /* блок — самостоятельный компонент */
.card__title {}        /* элемент — часть блока */
.card--featured {}     /* модификатор — вариант блока */
.card__title--small {} /* модификатор элемента */

Зачем он нужен

  • Нет конфликтов имён — каждый класс принадлежит своему блоку.
  • Низкая специфичность — все селекторы из одного класса, нет «гонки» и !important.
  • Независимость от разметки — стили не завязаны на вложенность тегов.
  • Читаемость — по имени класса понятно, к чему он относится.

Минусы

  • длинные имена классов;
  • держится на дисциплине команды;
  • в компонентных фреймворках со scoped-стилями часть пользы уже даёт сборщик.

Коротко для собеседования

БЭМ — соглашение об именах block__element--modifier, которое изолирует стили, держит специфичность низкой и не зависит от структуры HTML.

Подробнее: БЭМ — Методология

Другие вопросы раздела