Функция var()
Стилевая функция var() позволяет вставлять значения пользовательских переменных в значения стилевых свойств. var() нельзя использовать в именах селекторов и в свойствах.
Сами пользовательские переменные и их значения описываются внутри произвольного селектора и должны начинаться с двух дефисов. Через двоеточие переменной присваивается любое допустимое для CSS значение.
aside { --my-font: Helvetica, Arial, sans-serif; }
Для обращения к переменной --my-font используется запись var(--my-font), которую можно вставлять в качестве значения свойства. При этом область видимости переменной ограничена указанным селектором (aside в данном случае) и применение var(--my-font) в другом селекторе не даст результата. Для создания глобальных переменных их следует описать внутри селектора :root.
Синтаксис
var( <переменная> [, <значение> ]? )
Значения
- <переменная>
- Имя переменной, обозначается двумя дефисами впереди (--my-font).
- <значение>
- Резервное значение, которое подставляется вместо заданного, в том случае, если переменная не определена. Через запятую можно указать несколько значений.
Пример
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>var()</title> <style> :root { --primary-color: #0275d8; --info-color: #5bc0de; } button { padding: .5rem 1rem; border: none; } .primary { color: var(--white, #fff); background-color: var(--primary-color); } .info { color: var(--white, #fff); background-color: var(--info-color); } p.info { --primary-color: #31708f; padding: 10px; background-color: #d9edf7; color: var(--primary-color); } </style> </head> <body> <p class="info">Кнопки</p> <button class="primary">Типовая кнопка</button> <button class="info">Информация</button> </body> </html>
В данном примере вводятся две переменные: --primary-color и --info-color. Переменная --white не определена, поэтому подставляется указанное значение по умолчанию. Для селектора p.info значение переменной --primary-color переопределяется.
Спецификация
CSS Custom Properties for Cascading Variables Module Level 1
Браузеры
15 | 49 | 36 | 9.1 | 31 |
31 | 37 | 9.3 |