专栏名称: 前端大全
分享 Web 前端相关的技术文章、工具资源、精选课程、热点资讯
目录
今天看啥  ›  专栏  ›  前端大全

2 种纯前端换肤方案

前端大全  · 公众号  · 前端  · 2024-08-12 11:50

主要观点总结

文章介绍了使用CSS变量实现一键换肤功能的方法,包括定义主题色、修改CSS主题色和JS主题色的步骤,以及一键变灰的功能。

关键观点总结

关键观点1: 使用CSS变量实现一键换肤

通过定义不同的主题色CSS变量,在html标签上增加自定义属性来选择不同的主题,实现一键换肤功能。

关键观点2: 修改CSS主题色的方法

通过监听change事件,使用document.documentElement.setAttribute动态修改data-theme属性,CSS属性选择器将自动选择对应的css变量。

关键观点3: 修改JS主题色的方法

除了在CSS中修改样式,有时需要在JS文件中修改样式,例如修改echarts的配置文件,来改变图形的颜色。可以通过定义主题色TS类型,规定默认和暗黑两种,定义theme响应式变量,使用watch进行监听,重新绘制echarts图形。

关键观点4: 一键变灰的功能

在特殊的日子,可以通过CSS的filter属性,使用grayscale()改变图像灰度,实现网页整体变灰色的效果。


文章预览

前言 换肤功能是一项普遍的需求,尤其是在夜晚,用户更倾向于使用暗黑模式。在我负责的公司项目中,每个项目都有换肤功能的需求。 过去,我主要使用 SCSS 变量,并利用其提供的函数,如 @each 、 map-get 来实现换肤功能。但因其使用成本高,只能适用于SCSS项目,于是后来我改用 CSS 变量来实现换肤。这样无论是基于 LESS 的 React 项目,还是基于 SCSS 的 Vue 项目,都能应用换肤功能。并且使用时只需调用 var 函数,降低了使用成本。 Demo地址: https://github.com/cwjbjy/vite-vue-ts-seed/tree/feature/css 1. 一键换肤 1. 前置知识 CSS变量:声明自定义CSS属性,它包含的值可以在整个文档中重复使用。属性名需要以两个减号(--)开始,属性值则可以是任何有效的 CSS 值 --fontColor: '#fff' Var函数:用 于使用CSS变量。第一个参数为CSS变量名称,第二个可选参数作为默认值 co ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览