Вопрос проверяет знание методологий организации CSS-кода и способность выбрать подходящую архитектуру для проекта.
Архитектура CSS — это подход к организации стилей, который делает код предсказуемым, переиспользуемым и легко поддерживаемым. Без архитектуры CSS-код быстро превращается в хаос с конфликтами селекторов и трудностями при внесении изменений.
BEM — самая популярная методология, разработанная в Яндексе. Она основана на строгих правилах именования классов: блок (block), элемент (element) и модификатор (modifier). Пример:
.button { }
.button__icon { }
.button--large { }BEM гарантирует уникальность селекторов и упрощает командную работу. Недостаток — длинные имена классов.
OOCSS разделяет структуру и оформление. Например, класс .media задает структуру (flexbox), а .media--dark — оформление. Это повышает переиспользуемость, но может привести к избыточности классов в HTML.
SMACSS группирует стили по категориям: Base (базовые стили), Layout (сетка), Module (компоненты), State (состояния) и Theme (темы). Это гибкий подход, который не навязывает строгих правил именования.
ITCSS организует стили по уровням специфичности: от общих (сбросы) до конкретных (компоненты). Используется с препроцессорами и BEM. Помогает контролировать каскад и избегать !important.
Выбор архитектуры зависит от проекта. Для крупных команд и долгосрочных проектов лучше всего подходит BEM из-за строгих правил и предсказуемости. Для небольших проектов можно использовать SMACSS или OOCSS. ITCSS рекомендуется для сложных систем с препроцессорами.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию