var()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017.

Функция CSS var() используется для вставки значения кастомного свойства (также известного как "CSS-переменная") в другое свойство.

Интерактивный пример

Функцию var() нельзя использовать в именах свойств, селекторах или где-либо ещё, кроме как в качестве значений для свойств.

Синтаксис

Функции в качестве первого аргумента обязательно нужно передать имя кастомного свойства, значение которого нужно получить. Необязательный второй аргумент функции используется в качестве резервного значения. Если кастомное свойство, указанное в первом аргументе, оказалось недоступным, функция вернёт второе значение.

<var()> = 
var( <custom-property-name> , <declaration-value>? )

Примечание: синтаксис резервного значения, как и синтаксис кастомного свойств, допускает использование запятых. Например, var(--foo, red, blue) задаёт резервное значение red, blue; таким образом всё, что находится между первой запятой и закрывающей скобкой, считается резервным значением.

Значения

<custom-property-name>

Имя кастомного свойства, начинающиеся с двух дефисов. Кастомные свойства предназначены исключительно для разработчиков и пользователей; CSS никак не влияет на них.

<declaration-value>

Резервное значение кастомного свойства. Используется в случае, если кастомное свойство не определено или не может быть использовано в текущем контексте. Резервное значение может содержать любой символ, кроме некоторых спецсимволов, вроде символа новой строки, непарных закрывающих скобок (т.е. ), ], или }), точку с запятой или восклицательный знак.

Примеры

Использование кастомного свойства, определенного внутри :root

css
:root {
  --main-bg-color: pink;
}

body {
  background-color: var(--main-bg-color);
}

Кастомные свойства с резервным значением, когда свойство не было установлено

css
/* Резервное значение */
/* Стили для элементов компонента: */
.component .header {
  color: var(
    --header-color,
    blue
  ); /* header-color не существует, поэтому используется blue */
}

.component .text {
  color: var(--text-color, black);
}

/* Стили для самого компонента: */
.component {
  --text-color: #080;
}

Спецификации

Specification
CSS Custom Properties for Cascading Variables Module Level 1
# using-variables

Совместимость с браузерами

BCD tables only load in the browser

Смотрите также