CSS-модули, scoped CSS (в прошлой спецификации), CSS-in-JS.
CSS-модули:
.css рассматривается как модуль.Пример CSS-модуля:
css
javascript
Scoped CSS (устаревшая спецификация, но принципы используются в фреймворках):
<style scoped> применялись только к его родительскому элементу и его потомкам.Пример Scoped CSS (концептуально):
html
CSS-in-JS:
Пример CSS-in-JS (styled-components):
javascript
Сравнение методов:
| Метод | Где пишутся стили | Изоляция | Зависимости | Динамические стили |
|---|---|---|---|---|
| CSS-модули | Отдельные .css файлы | Преобразование имен классов | Модульный бандлер (Webpack, Parcel) | Ограниченные (через классы) |
| Scoped CSS | <style scoped> в HTML/компонентах | Браузер (устаревшая спецификация), фреймворки | Нет (чистый CSS), или встроено во фреймворк | Ограниченные |
| CSS-in-JS | В JS/TS коде | Библиотека CSS-in-JS | Библиотека CSS-in-JS | Полные (JS возможности) |