css - 动态更改 CSS4 变量
问题描述
我必须primary
为不同的公司处理多个和其他 CSS4 变量。我该如何处理这种用例?即根据公司动态更改主要的CSS4可变颜色?
注意:我的用例是我只需要更新primary
变量而不考虑 html 元素。然后它会影响所有使用过的地方primary
。
.html
<ion-button color="primary" (click)="reservation()">Book Now</ion-button>
变量.scss
:root {
/** primary **/
--ion-color-primary: rgb(180, 151, 90);
}
另一家公司有这个:但我需要动态设置。
:root {
/** primary **/
--ion-color-primary: rgb(129 147 171);
}
我可以为此使用服务吗?
export class ThemeSwitcherService {
constructor() { }
setTheme(data: string): void {
switch (data) {
case "com1":
primary:com1 color//how to do it here
break;
case "com2":
primary:com2 color
break;
default:
}
}
}
解决方案
这是我用过的主题切换器。
import { Injectable, Inject } from '@angular/core';
import { DomController } from '@ionic/angular';
import { DOCUMENT } from '@angular/common';
@Injectable({
providedIn: 'root'
})
export class ThemeSwitcherService {
constructor(private domCtrl: DomController,
@Inject(DOCUMENT) private document) { }
setTheme(data: string): void {
switch (data) {
case "com1":
this.domCtrl.write(() => {
this.document.documentElement.style.setProperty("--ion-color-primary", "rgb(180, 151, 90)");
});
break;
case "com2":
this.domCtrl.write(() => {
this.document.documentElement.style.setProperty("--ion-color-primary", "rgb(129,147,171)");
});
break;
default:
}
}
}
这对我帮助很大:主题切换器
推荐阅读
- sql - 当我尝试使用 CONCAT 或 || 时出现 Postgres 语法错误
- python - 我有这个错误:无法卸载 'pyparsing' 我尝试在 Mac os 中安装 pytest
- python - 如果列值在列表中,则创建列值-python pandas
- javascript - 如何将自定义方法添加到角度组件?
- asp.net - 如何从视图.Net Core 调用 void 函数
- javascript - 在 JavaScript 中实现一个函数,以确定一个单词是否可以通过删除重复的字母由另一个单词组成
- eclipse - 如何在eclipse中设置关闭项目的快捷键?
- python - 声明要搜索图像的区域?
- ios - 如何检测设备是否在 iOS 中重新启动?
- c# - 如何在 EF Core 中包含导航属性