更改 Angular 中切换按钮的颜色

问题描述 投票:0回答:1

我无法更改 Angular 中切换按钮的颜色。

这是我的代码:

 <mat-slide-toggle class="custom-toggle">
      Toggle
 </mat-slide-toggle>

::ng-deep .custom-toggle .mat-slide-toggle-bar {
  background-color: yellow !important;
}

::ng-deep .custom-toggle .mat-slide-toggle-thumb {
  background-color: yellow !important;
}

::ng-deep .custom-toggle.mat-checked .mat-slide-toggle-bar {
  background-color: yellow !important;
}

::ng-deep .custom-toggle.mat-checked .mat-slide-toggle-thumb {
  background-color: yellow !important;
}

我也尝试过这个:

<mat-slide-toggle
  style="--mat-slide-toggle-thumb-color: yellow; --mat-slide-toggle-bar-color: yellow;"
  class="custom-toggle"
  [checked]="isConnected"
  (change)="toggleConnection($event)"
>
  Toggle Connection
</mat-slide-toggle>

似乎没有什么作用...

也许我应该提到,这是我们在全局 styles.css 中使用的

@import '@angular/material/prebuilt-themes/indigo-pink.css';

任何帮助将不胜感激

我尝试咨询 chat-GPT 并阅读人们在此网站上提出的类似问题。

这在我的项目中不可用:@import '~@angular/material/theming';,我被告知我应该找到没有它的解决方案......

sass angular-material css-selectors
1个回答
0
投票

Angular Material 的预构建主题(例如 indigo-pink.css)通常会覆盖自定义样式。这些样式是封装的,这意味着您的样式并不总是按预期应用。

要有效地设计 Angular Material 组件(例如 mat-slide-toggle)的样式,您需要使用 Angular 的主题系统或深层 CSS 选择器。首先定义自定义主题,在其中指定主要元素的颜色。这将确保一致性并防止其他样式覆盖您的自定义颜色。此外,使用 ::ng-deep 选择器可以帮助您在 Angular Material 的封装组件中应用样式,从而允许您的自定义背景颜色直接在切换按钮的拇指和栏上生效。

如果您更喜欢内联样式,另一种方法是全局设置 CSS 变量,然后在组件样式中引用这些变量。

© www.soinside.com 2019 - 2024. All rights reserved.