Ответ
Основные сложности в поддержке CSS:
-
Специфичность селекторов - переопределение стилей из-за слишком высоких уровней специфичности. Решение - методологии (БЭМ) или CSS-in-JS.
-
Глобальная область видимости - стили "протекают" между компонентами. Помогают CSS-модули или scoped стили.
-
Каскадность - неожиданное наследование свойств. Лучше избегать
!importantи использовать изолированные компоненты.
Пример проблемы:
/* Плохо - высокая специфичность */
div#header .nav li.active a { color: red; }
/* Лучше - низкая специфичность */
.nav__link--active { color: red; }
-
Респонсив дизайн - сложности с поддержкой множества брейкпоинтов. Решение - mobile-first подход и CSS-переменные.
-
Устаревшие префиксы - необходимость поддержки старых браузеров. Автопрефиксер решает эту проблему.