less/scss主题切换

11 篇文章 0 订阅

1、实现原理

给内容最外层标签添加不同的主题class,用以区分不同的主题

2、less写法

.module-theme(@theme, @tag) {
  .m-title-box {
    background: @theme;
  }
  .m-head .m-info .m-name {
    color: @theme;
  }
  // 其他样式也如此
}
.theme-orange {
  @theme: #f9a51b;
  @tag: #fecc4e;
  .module-theme(@theme, @tag);
}
.theme-sky-blue {
  @theme: #6fa4d7;
  @tag: #93bde5;
  .module-theme(@theme, @tag);
}

3、scss写法

$themes: (
  theme-orange: (
    theme: #f9a51b,
    tag: #fecc4e
  ),
  theme-sky-blue: (
    theme: #6fa4d7,
    tag: #93bde5
  )
);
@each $theme, $config in $themes {
  .#{$theme} {
    .m-title-box {
      background: map-get($config, 'theme');
    }
    .m-head .m-info .m-name {
      color: map-get($config, 'theme');
    }
    // 其他样式也是如此
  }
}

4、使用,传入主题名,给最外层标签使用对应的主题class

document.getElementById("theme").setAttribute("class", "theme-" + theme);

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值