Яндекс.Метрика
Москва, Волгоградский пр-т,
43к3, оф. 301
Пишите 24/7, мы онлайн
+7 (495) 128-00-14
последнее обновление: 16.12.2025

Определение: БЭМ (Блок — Элемент — Модификатор) — это методология именования классов и организации разметки/стилей, которая помогает делать CSS предсказуемым и поддерживаемым. Идея простая: интерфейс собирается из независимых блоков, внутри которых есть элементы, а модификаторы задают варианты вида или состояния.

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

  • Снижать хаос в CSS: по имени класса сразу понятно, к чему относится стиль.
  • Упрощать поддержку: легче править один блок, не ломая соседние части страницы.
  • Повышать переиспользуемость: блок можно переносить между страницами и проектами.
  • Делать стили масштабируемыми: когда сайт растёт, классы остаются управляемыми.
  • Уменьшать конфликты специфичности: реже приходится “перебивать” стили сложными селекторами.
  • Ускорять командную работу: единые правила именования понятны всем участникам.

Пример

Пример кода:

<button class="btn btn--primary"><span class="btn__text">Купить</span></button>

Скриншот

Открытая вкладка DevTools Elements, где у элемента видны классы в стиле БЭМ: block, block__element и block--modifier

Подпись к скриншоту: вкладка DevTools “Elements”: пример HTML-элемента с классами по БЭМ (блок, элемент и модификатор)

Частые ошибки

  • Смешивать БЭМ с “обычными” именами без правил, из-за чего методология перестаёт работать.
  • Делать модификатор “вместо блока” (например, использовать --primary без базового класса блока).
  • Слишком глубоко усложнять структуру: пытаться описать всё подряд цепочками элементов.
  • Привязывать имена к внешнему виду (например, red-button), а не к смыслу/роли в интерфейсе.
  • Использовать один и тот же элемент в разных блоках “как общий”, не выделяя отдельный блок.

Связанные термины

  • CSS
  • Каскад
  • Специфичность
  • Компонентный подход
  • CSS-переменные
  • Utility-классы
  • Семантическая вёрстка

Наши услуги