利用的原理就是CSS 自定义属性(变量)。
具体用法这里就不多介绍了,可以参考MDN:使用 CSS 自定义属性(变量) - CSS:层叠样式表 | MDN
这里主要是提供一个换肤的思路,完整代码如下,复制下来本地跑一下就明白怎么回事了,还是很简单的。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Skin</title>
</head>
<style>
:root {
--main-bg-color: grey;
--main-font-color: green;
}
.white {
--main-bg-color: white;
--main-font-color: black;
}
.black {
--main-bg-color: black;
--main-font-color: white;
}
.box {
width: 200px;
height: 200px;
border: 1px solid #ccc;
margin: 10px auto;
text-align: center;
background-color: var(--main-bg-color);
color: var(--main-font-color);
}
.btns {
margin: 200px auto 0 auto;
text-align: center;
}
</style>
<body>
<div class="btns">
<button onclick="changeDefault()">默认</button>
<button onclick="changeWhite()">白色</button>
<button onclick="changeBlack()">黑色</button>
</div>
<div class="box">好好学习!</div>
</body>
<script>
function changeDefault() {
const box = document.querySelector(".box");
box.classList.remove("black");
box.classList.remove("white");
console.log(box.classList);
}
function changeWhite() {
const box = document.querySelector(".box");
box.classList.remove("black");
box.classList.add("white");
console.log(box.classList);
}
function changeBlack() {
const box = document.querySelector(".box");
box.classList.remove("white");
box.classList.add("black");
console.log(box.classList);
}
</script>
</html>