赞
踩
本篇仅提供多主题切换思路,示例简单且清晰。
步骤一:多主题(颜色)定义
/* 默认 */
:root {
--box-bg-01: yellow;
--box-bg-02: blue;
}
/* 带参数 myTheme02 */
:root[my-theme=myTheme02] {
--box-bg-01: red;
--box-bg-02: green;
}
步骤二:主题切换
html
根节点;changeTheme() {
let type = document.documentElement.getAttribute('my-theme')==='myTheme02' ? '' : 'myTheme02';
document.documentElement.setAttribute('my-theme', type);
}
默认主题:可看到下图右侧 html
标签上无其它属性。样式 root
中有可查看CSS变量。
带参主题 myTheme02
:可看到下图右侧 html
标签上有属性my-theme
。样式 root
中有可查看CSS变量。
:root
定义在全局样式中;<template> <div> <div><button @click="changeTheme">主题切换</button></div> <div class="box box01"></div> <div class="box box02"></div> </div> </template> <script> export default { methods: { changeTheme() { let type = document.documentElement.getAttribute('my-theme')==='myTheme02' ? '' : 'myTheme02'; document.documentElement.setAttribute('my-theme', type); } } } </script> <style> /* 默认 */ :root { --box-bg-01: yellow; --box-bg-02: blue; } /* 带参数的 */ :root[my-theme=myTheme02] { --box-bg-01: red; --box-bg-02: green; } </style> <style lang="stylus" scoped> .box { display: inline-block; width: 100px; height: 100px; } .box01 { background: var(--box-bg-01); } .box02 { background: var(--box-bg-02); } </style>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。