前端换肤有2
种,一种是定义好多套主题的换肤,另一种是随意配置主题色换肤。而且很多是使用UI
库提供的变色方案,本片文章是纯主题色变量和var
一起使用实现换肤效果。以下2
种换肤方案有兴趣业务适配的可以点击标题了解下:
Vue+ElementUI
实现多套主题换肤Vue+ElementUI
实现在线动态换肤:root
,代码第 2
和 7
行。分别定义了默认和带参数的伪类;CSS
变量,变量名需要以两个减号(--
)开始;my-theme=myTheme02
、my-theme=myTheme03
等等;/* 默认 */
:root {
--box-bg-01: yellow;
--box-bg-02: blue;
}
/* 带参数 myTheme02 */
:root[my-theme=myTheme02] {
--box-bg-01: red;
--box-bg-02: green;
}
设置根节点html
属性my-theme
const type = document.documentElement.getAttribute('my-theme')==='myTheme02' ? '' : 'myTheme02';
document.documentElement.setAttribute('my-theme', type);
可看到下图右侧 html
标签上无其它属性
myTheme02
可看到下图右侧 html
标签上有属性my-theme
主题切换
本人每篇文章都是一字一句码出来,希望大佬们多提提意见。顺手来个三连击,点赞收藏关注✨。创作不易,给我打打气,加加油☕