Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про CSS: BEM, CSS naming conventions, methodology, maintainability

Как правильно именовать CSS-классы в проекте?

Вопрос проверяет знание методологий именования CSS-классов для поддержки масштабируемости и читаемости кода.

Короткий ответ

Используйте методологию BEM (Блок-Элемент-Модификатор). Класс пишется как block__element_modifier. Это делает код предсказуемым, избегает конфликтов имён и упрощает поддержку в больших проектах. Альтернативы — SMACSS или OOCSS, но BEM наиболее популярен.

Длинный ответ

Зачем нужны правила именования CSS-классов?

В больших проектах без единой системы имена классов быстро становятся хаотичными: .header, .headerTitle, .title-red. Это приводит к конфликтам, трудностям при рефакторинге и путанице. Методологии вроде BEM решают эту проблему, вводя строгую структуру.

Основы BEM

BEM расшифровывается как Блок-Элемент-Модификатор. Блок — независимый компонент (например, button). Элемент — часть блока, не имеющая смысла вне его (button__icon). Модификатор — вариант состояния или внешнего вида (button_disabled).

Пример:

<div class="card">
  <h2 class="card__title">Заголовок</h2>
  <p class="card__text card__text_highlighted">Текст</p>
</div>

Здесь card — блок, card__title и card__text — элементы, card__text_highlighted — модификатор элемента.

Практические рекомендации

  • Используйте дефис для разделения слов в блоке: my-block.
  • Два подчеркивания для элемента: my-block__element.
  • Одно подчеркивание для модификатора: my-block__element_modifier.
  • Избегайте вложенности элементов: block__elem1__elem2 — плохо, лучше создать новый блок.

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

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    4

  • Сложность:

    3

Навыки

  • CSS

    CSS

Ключевые слова

#BEM

#CSS naming conventions

#methodology

#maintainability

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию