SCSS 实现换肤
scss 作为专业级CSS扩展语言,其功能是非常强大的。除了基本的嵌套外,还有 mixin(混合) 这些......
这里简单的总结下,scss 实现白天和黑夜两种模式的换肤
这是最近做的另一种使用scss换肤的方式 SCSS 实现换肤(二)
安装scss
npm install sass-loader node-sass --Save
实现
-
新建一个主题颜色的
themes.scss
,里边是对应主题的颜色变量$themes: ( chalk: ( homebackgrond: #fff, liveroommsgBg: #f7f8fd, headercolor: #39393f, useritembg: rgba(23, 35, 72, 0.4), ....... ) vintage: ( homebackgrond: rgba(20, 21, 24, 1), liveroommsgBg: rgba(20, 21, 24, 1), headercolor: #fff, useritembg: rgba(52, 50, 59, 1), ...... ) )
chalk
:是白天模式
vintage
:是黑夜模式 -
新建一个
handle.scss
,获取相应的颜色变量及定义相关的方法- 导入主题颜色文件
@import './themes.scss';
- 遍历主题 map
@mixin themeify { @each $theme-name, $theme-map in $themes { $theme-map: $theme-map !global; [data-theme="#{$theme-name}"] & { @content; } } }
- 声明一个根据 key,获取颜色的 function
@function themed($key) { @return map-get($theme-map, $key); }
- 对应的样式混合
@mixin background_color($color) { @include themeify { background: themed($color); } } @mixin font_color($color) { @include themeify { color: themed($color); } }
- 导入主题颜色文件
使用
- 在文件中引入
<style lang="scss" scoped> @import '../styles/handle.scss'; <style>
- 更改属性值
window.document.documentElement.setAttribute('data-theme', this.theme);
效果

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)