- 说明
- .也称自定义属性
- .使用两个短划线--开始的变量名表示
- .元素在CSS中使用时,使用var()引用
- .一次定义、多次使用;适合一个属性值在多处被使用;相当于定义了一个当前CSS文件内的全局变量
- .优势:方便运维,特别适合全站换肤
- .变量的使用经常配合计算函数 calc() 使用
- 全局变量
- .在CSS中,使用根选择器:root声明,所有元素都可使用
-
:root {
--main-color: #f40;
--main-layout: repeat(3, 1fr);
}
.wrap {
display: grid;
grid-template-columns: var(--main-layout);
}
@media screen and (max-width:768px) {
:root {
--main-layout: 1fr;
}
}
- 局部变量
- .在CSS中,如果变量定义在某个选择器,则只有该选择器选中的元素和它的所有后代元素使用-局部变量
-
.wrap{
--el-color: #890;
}
- 内联变量
- .在HTML元素中,使用style定义内联CSS变量,供当前元素在CSS使用
-
<div style="--alpha:0">0</div>
- 与JS交互
- .动态调整
- .获取元素节点,修改其属性
-
let mixer = document.querySelectorAll('.mixer span');
let root = document.querySelector(':root');
console.log(root);
mixer.forEach(item => {
item.addEventListener('click', (e) => {
console.log(e.target.style.backgroundColor);
root.style.setProperty('--main-color', e.target.style.backgroundColor)
})
})