Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про HTML: CSS custom properties, SCSS variables, preprocessor, runtime, compile time

В чем разница между переменными в CSS и переменными в SCSS?

Вопрос проверяет понимание различий между нативными CSS-кастомными свойствами и переменными препроцессора SCSS, что важно для выбора подходящего инструмента в зависимости от задач.

Короткий ответ

CSS-переменные (кастомные свойства) работают на уровне браузера, поддерживают наследование и могут изменяться динамически через JavaScript или медиа-запросы. SCSS-переменные компилируются в статические значения на этапе сборки и не поддаются изменению в рантайме. CSS-переменные доступны в DOM и подходят для тем, а SCSS — для удобства разработки и переиспользования значений.

Длинный ответ

Основное различие: время вычисления

CSS-переменные (кастомные свойства) вычисляются браузером во время выполнения страницы, а SCSS-переменные — на этапе компиляции препроцессора. Это ключевое отличие определяет все остальные особенности.

Динамичность и наследование

CSS-переменные наследуются через DOM и могут быть переопределены в любом селекторе, включая медиа-запросы и псевдоклассы. SCSS-переменные имеют лексическую область видимости (блоки кода) и не реагируют на изменения DOM.

/* SCSS */
$primary: blue;
.button { color: $primary; }
.dark .button { $primary: white; /* Ошибка: не переопределит */ }

/* CSS */
:root { --primary: blue; }
.button { color: var(--primary); }
.dark .button { --primary: white; /* Работает */ }

Применение в JavaScript

CSS-переменные можно читать и изменять через JS, что удобно для динамических тем или анимаций. SCSS-переменные недоступны в рантайме.

// Чтение CSS-переменной
getComputedStyle(element).getPropertyValue('--primary');
// Изменение
element.style.setProperty('--primary', 'red');

Вывод

Используйте CSS-переменные для динамических стилей, тем и адаптивности. SCSS-переменные подходят для статических значений, которые не меняются в рантайме, и для улучшения читаемости кода на этапе разработки.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    4

  • Сложность:

    4

Навыки

  • HTML

    HTML

  • CSS

    CSS

Ключевые слова

#CSS custom properties

#SCSS variables

#preprocessor

#runtime

#compile time

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию