angular实现皮肤主题切换的方案

本文介绍了如何在Angular6项目中实现场景切换,包括light和dark两种主题。通过在body上设置data-theme-style属性来控制样式,利用SCSS创建mixin处理背景色和字体颜色等。在组件中监听按钮事件切换主题,并解决组件样式隔离问题,确保样式在组件内也能生效。
摘要由CSDN通过智能技术生成

分配了个给现有angular6项目实现主题切换的效果,实现light dark明暗两种显示效果,我使用scss css预处理器方便开发。
效果(只截了一点点):
图片描述

切换样式 就是 实现css 的 变化,主要思路是通过在body 上控制自定义属性的值实现样式的控制,在body上 添加 data-theme-style=”dark”, 像这样:

<body data-theme-style="dark">
  <app-root></app-root>
</body>

我们通过data-theme-style的值 来控制样式,本项目中 值有 light,dark 分别代表明暗两套主题

首先把切换主题 需要变化的 样式 抽离出来 定义成mixin,如:背景颜色,字体颜色,阴影,边框等,,

这里以背景颜色 和 字体颜色举例:

@mixin mixin-bg-color($dark-color,$light-color){

  [data-theme-style="dark"] & {
    background-color: $dark-color;
  }
  [data-theme-style="light"] & {
    background-color:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值