:root {
--main-color: #06c;
}
#foo h1 {
color: var(--main-color);
css自定义变量优点
:root {
--gutter: 4px;
}
section {
margin: var(--gutter);
}
@media (min-width: 600px) {
:root {
--gutter: 16px;
}
}
可以继承
:root {
--primary-color: red;
--logo-text: var(--primary-color);
}
var(<custom-property-name> [, <declaration-fallback-value> ]? )
.foo {
--gap: 20;
margin-top: calc(var(--gap) * 1px); /* niiiiice */
}
working with js
/* CSS */
:root {
--primary-color: red;
--secondary-color: blue;
}
p {
color: var(--primary-color);
}
<!-- HTML -->
<p>I’m a red paragraph!</p>
/* JS */
var styles = getComputedStyle(document.documentElement);
var value = String(styles.getPropertyValue('--primary-color')).trim();
// value = 'red'
document.documentElement.style.setProperty('--primary-color', 'green');
document.documentElement.style.setProperty('--primary-color', 'var(--secondary-color)');