Лучшие практики именования классов в CSS: BEM, OOCSS, SMACSS

Лучшие практики именования классов в CSS: BEM, OOCSS, SMACSS

Правильное именование классов в CSS — это фундамент поддерживаемого и масштабируемого кода. В этой статье мы разберём три популярных методологии: BEM, OOCSS и SMACSS, которые помогут вам создавать чистый и организованный CSS.

1. BEM (Block, Element, Modifier)

БЭМ — это строгая методология именования, разработанная в Яндексе, которая создаёт чёткую структуру CSS-селекторов.

Основные принципы:

  • Блок (Block): Независимый компонент (.header, .menu)
  • Элемент (Element): Часть блока (.menu__item)
  • Модификатор (Modifier): Вариант или состояние (.menu__item--active)
<!-- HTML -->
<div class="card card--featured">
  <img class="card__image" src="...">
  <h3 class="card__title">Заголовок</h3>
  <p class="card__description">Описание...</p>
</div>

<!-- CSS -->
<style>
  .card { /* стили блока */ }
  .card__image { /* стили элемента */ }
  .card--featured { /* модификатор */ }
</style>

Преимущества:

  • Чёткая структура и связь элементов
  • Минимизация конфликтов имён
  • Высокая читаемость кода

Недостатки:

  • Длинные имена классов
  • Жёсткая структура
  • Избыточность для простых проектов

2. OOCSS (Object-Oriented CSS)

Объектно-ориентированный CSS фокусируется на создании повторно используемых компонентов и разделении структуры от оформления.

Основные принципы:

  • Разделение структуры и оформления
  • Создание повторно используемых объектов
  • Использование классов-помощников
<!-- HTML -->
<div class="media-box rounded shadow">
  <img class="media-box__image" src="...">
  <div class="media-box__content">...</div>
</div>

<!-- CSS -->
<style>
  .media-box { /* базовая структура */ }
  .media-box__image { /* специфичные стили */ }
  .rounded { border-radius: 4px; } /* класс-помощник */
  .shadow { box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
</style>

Преимущества:

  • Высокая повторная используемость
  • Меньший объём CSS
  • Гибкость и модульность

Недостатки:

  • Может привести к "классовому взрыву"
  • Требует дисциплины при именовании
  • Менее явная связь между элементами

3. SMACSS (Scalable and Modular Architecture for CSS)

SMACSS — это скорее набор руководств, чем строгая методология, фокусирующаяся на категоризации CSS-правил.

Категории стилей:

  • Base: Базовые стили тегов (body, h1)
  • Layout: Основные структурные компоненты (.l-header)
  • Module: Независимые компоненты (.product-card)
  • State: Состояния (.is-hidden, .is-active)
  • Theme: Темы оформления
<!-- HTML -->
<div class="l-container">
  <header class="l-header">
    <nav class="nav-main is-expanded">...</nav>
  </header>
</div>

<!-- CSS -->
<style>
  .l-header { /* layout стили */ }
  .nav-main { /* module стили */ }
  .is-expanded { /* state стили */ }
</style>

Преимущества:

  • Гибкий и адаптируемый подход
  • Хорошая масштабируемость
  • Чёткое разделение ответственности

Недостатки:

  • Менее строгие правила именования
  • Требует хорошего понимания архитектуры
  • Может сочетаться с другими методологиями

Как выбрать методологию?

Выбор зависит от масштаба проекта и предпочтений команды:

  • Крупные проекты: BEM обеспечит строгую структуру
  • Проекты с множеством повторяющихся компонентов: OOCSS повысит переиспользуемость
  • Гибкие и evolving-проекты: SMACSS предоставит необходимую свободу

Полезные ресурсы

Другие статьи

Самое интересное из мира технологий, полезные статьи и новости нашего агенства.
Организация CSS в 2026: BEM, Utility-first, CSS Modules, CSS-in-JS и современный CSS

Организация CSS в 2026: BEM, Utility-first, CSS Modules, CSS-in-JS и современный CSS

Полное руководство по выбору методологии организации CSS в 2026 году: сравнение подходов, примеры кода и рекомендации по выбору

Адаптивные таблицы 2026: 5 проверенных способов их создания

Адаптивные таблицы 2026: 5 проверенных способов их создания

Полное руководство по созданию адаптивных таблиц: от overflow-x до трансформации в карточки и CSS Grid.

GPT-5 Pro за 30 минут выполнила расчет скрытой симметрии Керра

GPT-5 Pro за 30 минут выполнила расчет скрытой симметрии Керра

GPT-5 Pro помогла с самой муторной частью — быстро «угадала форму» этих правил и подобрала коэффициенты так, чтобы все сходилось.

Все статьи

Остались вопросы?

Заполните форму ниже. Мы обязательно ответим вам в ближайшее время.

Оставляя заявку, вы даете согласие на обработку персональных данных и соглашаетесь с политикой конфиденциальности.