项目都快好了突然收到需求说要做多个主题,不是很想大改,就想着有没有什么猥琐的招式,找了一下还真有:
以VUE为例,我先是把原有的主题样式剪切到了一个css文件中,再根据UI图把另外一个css文件肝出来
第二步:在index.html引入两个主题的css文件(注意添加上id,后续操作dom时会用到)
第三步:找到需要变更主题的地方,我这边偷懒就直接加到App.vue里了(- -本来就只写了两个全局样式文件)
简单来说就是把所有样式导入进去,当获取到主题名之后(这里以localStorage为例),将不需要的主题添加disabled属性(即禁用该样式)
当然这只是个简单示例,你也可以发散出去,探索如何去动态引入css…值得一提的是,w3c中并没有写入标签的disabled属性,但它又是确实存在的,其可用性和规范性有待考究