В каком случае нужно прописывать CSS class для элемента?
Основы CSS
CSS-класс нужен, когда у элемента есть повторяемое или осмысленное оформление, которое не должно зависеть от тега или структуры.
Когда добавлять класс
- Переиспользуемые стили — один и тот же вид у разных элементов:
.button,.card. - Компоненты и их части —
.card__title,.card--featured(БЭМ). - Состояния —
.is-active,.is-open, которые переключает JavaScript. - Независимость от разметки — стиль не сломается, если
divзаменят наsection.
Когда можно без класса
- Базовые стили тегов в reset или типографике:
body,h1,a,p. - Содержимое из CMS или markdown, где классы не добавить, — стили по контейнеру:
.article p.
Чего избегать
/* хрупко: зависит от структуры */
.header > div > ul > li > a { color: red; }
/* надёжно */
.nav__link { color: red; }Также не стоит стилизовать по id — у него слишком высокая специфичность.
Коротко для собеседования
Класс добавляют для переиспользуемых стилей, компонентов и состояний, чтобы стили не зависели от тегов и вложенности.
Подробнее: MDN — Селекторы классов