Перейти к основному содержимому

Переменные CSS

Вставка значения CSS-переменной — задача функции var().

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

Цвета вашего дизайна отлично подходят для этого. Поместите каждый цвет в переменную один раз, а не копируйте и вставляйте его снова и снова.


CSS — объявление переменной

CSS-переменная имеет глобальную или локальную область видимости.

Глобальная переменная доступна из любого места документа, а локальная работает только внутри селектора, в котором она объявлена.

Для глобальной области видимости поместите объявление внутрь селектора :root, который соответствует корневому элементу документа.

Для локальной области видимости поместите его внутрь селектора, который будет её использовать.

Имена всегда начинаются с двух дефисов (--), а прописные и строчные буквы считаются разными!

Синтаксис объявления переменной

Блок :root содержит глобальную переменную, а конкретный селектор — локальную.

styles.css
:root {
  --primary-bg-color: green; /* global scope */
}

.note {
  --note-bg: yellow; /* local scope */
}

Функция CSS var()

После объявления CSS-переменной var() вставляет её значение.

Возможны два аргумента: имя переменной, которое обязательно и начинается с двух дефисов, и запасное значение, которое необязательно и используется, если переменную не удаётся найти.

Работа с var() даёт такие преимущества:

  • Поддержка становится проще, так как обновления выполняются легче
  • Код читается яснее и становится понятнее
  • Цветовые значения на всей странице легче изменять

Синтаксис var()

Как записывается var(): name указывать обязательно, а value — необязательное запасное значение.

styles.css
var(--name, value)

Пример CSS-переменных

Сначала объявляются две глобальные переменные, --primary-bg-color и --primary-color. Ниже в таблице стилей var() подставляет их значения.

Переменные синей темы

Здесь две глобальные CSS-переменные содержат синий и белый цвета, а var() передаёт эти значения элементам body, контейнера, заголовка и заметки.

Prompt
Создайте страницу, объявляющую две глобальные CSS-переменные (--primary-bg-color как #1e90ff и --primary-color как #ffffff) в :root. Используйте их с var() для стилизации фона body, контейнера с цветом текста, фоном, отступом, h2 с нижней границей и div заметки с границей и отступом.
Output: complete HTML page

Переменные зелёной темы

Чтобы изменить стиль всей страницы, достаточно отредактировать только эти два значения переменных. Здесь они содержат зелёный и цветочно-белый цвета.

Prompt
Создайте страницу, объявляющую две глобальные CSS-переменные (--primary-bg-color как #8FBC8F и --primary-color как #FFFAF0) в :root. Используйте их с var() для стилизации фона body, контейнера с цветом текста, фоном, отступом, h2 с нижней границей и div заметки с границей и отступом. Это демонстрирует, как изменение значений переменных меняет весь внешний вид.
Output: complete HTML page

Функция CSS var()

Чтобы вставить значение CSS-переменной, вызовите var().