Используя CSS Пользовательские свойства с конца 2017 года, я, наконец, правильно понял, что они на самом деле и почему необходима функция var()
...
Они являются не (как это часто бывает) переменными, предназначенными для непосредственного представления CSS значений .
CSS Пользовательские свойства точно то, что они говорят - это новые CSS свойства , которым (пока) не присвоены значения.
В CSS, пример чего-то, что действительно приближает переменную, представляющую значение , равно currentColor
.
Мы видим currentColor
, представляющее значение, здесь:
.my-div {
border: 1px dashed currentColor;
}
Но CSS Пользовательские свойства не являются CSS переменными, которые обозначают значения , такие как currentColor
,.
Вместо этого CSS Пользовательские свойства были заново изобретены, названы, null-value-properties ...
... и эти новые -Изобретенные именованные свойства с нулевым значением полностью пригодны для повторного использования. Также как width
, height
, color
et c. они могут иметь значения, устанавливаемые и сбрасываемые в разных контекстах.
Например,
/* My custom property is --my-custom-width but I want this
property to hold different values in different contexts */
.left-two-thirds-of-page {
--my-custom-width: 120px;
}
.right-third-of-page {
--my-custom-width: 60px;
}
.my-div {
width: var(--my-custom-width);
}
Именно поэтому необходима функция var()
- она не доставляет "пользовательское свойство "- он извлекает значение , которое в настоящее время хранится в пользовательском свойстве , и затем передает это значение.
Дальнейшие мысли:
Оглядываясь назад Интересно, если бы отношение имя-значение было бы немного яснее, если бы были вызваны CSS Пользовательские свойства :
CSS Custom Property Names
и соответствующая функция была вызвана:
value()
, поэтому синтаксис был бы записан и прочитан как:
value(--my-custom-property-name)
В качестве расширения мы могли бы использовать функцию value()
(или var()
функция) не только для пользовательских свойств, но и для любого свойства.
Например:
width: value(height);