嘿,我有以下问题:
在我的离子/角度应用程序中,我有一个主(主题)scss,我已经定义了应用程序的主要颜色这样的事情:
$colors: (
primary: #92c7ff,
secondary: #32db64,
danger: #6c1d23,
light: #f4f4f4,
dark: #222,
btnColor: #32db64,
);
以及我用两种方式使用的那些
1)直接在元素上
<button ion-button block type="submit" [disabled]="!loginForm.form.valid" color="btnColor">
或2)作为另一个scss定义的参考:
.background {
background: color($colors, light);
background-repeat: no-repeat;
background-size: 100% 100%;
}
在我的用例中,我的用户可以在我的网络服务器上定义他们的app颜色设计 . 如果他们登录,则应加载他们的自定义设计 . 它们应该只能编辑颜色,并且应该在应用程序中以某种方式覆盖这些颜色,因此从主scss引用的所有颜色将不再使用,而是我自己定义的颜色 . 我找到了这篇文章:https://nddt-webdevelopment.de/angularjs/angular-5-dynamic-css-component哪里可以添加自定义css . 我开始这样做,但在这里我需要创建很多CSS规则,没有完全控制 . 例如,与之前相同的按钮将在应用程序中呈现,如下所示:
<button block="" color="btnColor" ion-button="" type="submit" class="disable-hover button button-md button-default button-default-md button-block button-block-md button-md-btnColor" ng-reflect-color="btnColor" ng-reflect-block="">
在这里,我可以找到ng-reflect-color标签 . 如果我可以拦截这种反射并给出我自己的 Value 会很好 . 否则我需要创建一个新规则(就像我现在做的那样):
.button-md-btnColor { background-color: orange; }
这有效,但它不是一个非常好的方式 - 我也有问题,我必须为我使用的每个离子元素创建这些规则,因为有许多不同的类:
.item-md-btnColor { background-color: orange; }
一个想法是我添加一个可以工作的自定义颜色类 . 但我认为拦截是最好和最干净的方式 .