Какие проблемы бывают при использовании стилей в CSS?
Основы CSS
Главная проблема CSS — глобальность: любое правило может повлиять на любой элемент страницы, а итог зависит от каскада.
Типичные проблемы
- Конфликты имён —
.titleв разных частях проекта перекрывают друг друга. - Гонка специфичности — чтобы перебить стиль, пишут всё более длинные селекторы и
!important. - Зависимость от порядка — поменяли порядок подключения файлов, и вид изменился.
- Мёртвый код — страшно удалять стили, непонятно, где они используются.
- Хрупкие селекторы —
.header > div > ul aломается при изменении разметки.
Как решают
- соглашения об именах (БЭМ);
- изоляция: CSS Modules, scoped-стили, CSS-in-JS, Shadow DOM;
@layerдля управления приоритетами;- дизайн-система и CSS-переменные вместо копирования значений;
- линтеры (Stylelint).
Коротко для собеседования
CSS глобален, поэтому возникают конфликты имён, гонка специфичности и мёртвый код; решают это изоляцией, БЭМ, слоями и дизайн-системой.
Подробнее: MDN — Каскадные слои