Назад к вопросам
Middle
65
questionbank
В чем заключается отличие переменных в CSS от переменных в препроцессорах?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Переменные в препроцессорах (Sass, Less, Stylus) обрабатываются до компиляции в CSS. Они позволяют хранить значения, использовать их в вычислениях и применять с помощью директив (@mixin, @function), что делает CSS более динамичным и модульным.
CSS-переменные (custom properties), объявленные с помощью синтаксиса --variable-name, обрабатываются браузером во время выполнения (runtime). Их значения могут изменяться с помощью JavaScript, что полезно для создания динамических тем или изменения стилей в зависимости от состояния элемента.
| Характеристика | Переменные в препроцессорах | CSS-переменные (custom properties) |
|---|---|---|
| Обработка | На этапе прекомпиляции | В браузере (runtime) |
| Изменение в JS | Невозможно | Возможно |
| Область видимости | Зависит от препроцессора (блок, глобальная) | Зависит от места определения (глобальная, в рамках селектора) |
| Использование | Объявляются с символами ($, @) |
Объявляются с -- |
Пример использования CSS-переменных в браузере:
:root {
--main-color: blue; // Объявление глобальной CSS-переменной
}
.element {
color: var(--main-color); // Использование CSS-переменной
}
const element = document.querySelector('.element');
element.style.setProperty('--main-color', 'red'); // Изменение CSS-переменной с помощью JS