Область видимости переменных

Удобство переменных CSS заключается в том, что мы можем задавать их область видимости. Эта концепция аналогична той, что существует в других языках программирования. Возьмём, к примеру, Javascript.

let element = "cool";
function cool() {
  let otherElement = "Not cool";
  console.log(element);
}

Здесь переменная element является глобальной, поэтому к ней можно обращаться внутри функции cool(). Однако доступ к переменной otherElement уже возможен только внутри функции cool(). Применим эту концепцию к переменным CSS.

:root {
  --primary-color: #235ad1;
}
.section-title {
  --primary-color: d12374;
  color: var(--primary-color);
}

Здесь переменная --primary-color является глобальной и может быть доступна из любого элемента документа. Если переопределить её в блоке .section-title, то новое значение переменной будет действовать только там.

Вот наглядный пример, который лучше всего это объясняет.

У нас есть переменная --primary-color, которая используется для цвета заголовка раздела. Мы хотим настроить цвет для разделов «Featured authors» и «Latest articles», поэтому переопределим переменную. То же самое относится и к переменной --unit. Вот версия CSS для приведённого выше рисунка.

/* Глобальные переменные */
:root {
  --primary-color: #235ad1;
  --unit: 1rem;
}
/* Цвет заголовка раздела и пространство снизу по умолчанию */
.section-title {
  color: var(--primary-color);
  margin-bottom: var(--unit);
}
/* Переопределяем цвет заголовка раздела */
.featured-authors .section-title {
  --primary-color: #d16823;
}
/* Переопределяем цвет заголовка и пространство снизу */
.latest-articles .section-title {
  --primary-color: #d12374;
  --unit: 2rem;
}
Автор: Ахмад Шадид
Последнее изменение: 20.02.2024