angular material 6 个不同颜色的垫子滑块
angular material 6 multiple mat-sliders with different colors
我在一个页面中有 3 个“mat-slider”,我想为滑块设置 3 种不同的颜色。我无法覆盖页面(组件)的主题颜色,因为它将应用于所有滑块。我是否必须为滑块制作 3 个不同的组件并覆盖每个组件的主题颜色?实现这一目标的最简单方法是什么?
下面是我的 angular 和包版本,
Angular CLI: 6.0.8
Node: 8.9.4
OS: win32 x64
Angular: 6.0.6
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router
Package Version
-----------------------------------------------------------
@angular-devkit/architect 0.6.8
@angular-devkit/build-angular 0.6.8
@angular-devkit/build-optimizer 0.6.8
@angular-devkit/core 0.6.8
@angular-devkit/schematics 0.6.8
@angular/cdk 6.3.0
@angular/cli 6.0.8
@angular/flex-layout 6.0.0-beta.16
@angular/material 6.3.0
@ngtools/webpack 6.0.8
@schematics/angular 0.6.8
@schematics/update 0.6.8
rxjs 6.2.1
typescript 2.7.2
webpack 4.8.3
这可能不是最好的方法,但正如您要求的最简单的方法,这里有一个解决方案。
给每个滑块一个 class:
// home.component.hmtl
<mat-slider class="mat-slide-1"></mat-slider>
<mat-slider class="mat-slide-2"></mat-slider>
<mat-slider class="mat-slide-3"></mat-slider>
在您的 styles.scss 中引用这些 class 并在每个 class 中定义您希望更改颜色并使其重要的元素:
// styles.scss
.mat-slide-1 {
.mat-slider-thumb {
background-color: red !important;
}
}
.mat-slide-2 {
.mat-slider-thumb {
background-color: yellow !important;
}
}
.mat-slide-3 {
.mat-slider-thumb {
background-color: green !important;
}
}
此示例仅更改缩略图的颜色,但会检查滑块的元素以找到与您要更改的元素相关的 class。
更正确的解决方案是使用多个主题并将它们分别应用于每个组件。参考 material docs.
我在一个页面中有 3 个“mat-slider”,我想为滑块设置 3 种不同的颜色。我无法覆盖页面(组件)的主题颜色,因为它将应用于所有滑块。我是否必须为滑块制作 3 个不同的组件并覆盖每个组件的主题颜色?实现这一目标的最简单方法是什么? 下面是我的 angular 和包版本,
Angular CLI: 6.0.8
Node: 8.9.4
OS: win32 x64
Angular: 6.0.6
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router
Package Version
-----------------------------------------------------------
@angular-devkit/architect 0.6.8
@angular-devkit/build-angular 0.6.8
@angular-devkit/build-optimizer 0.6.8
@angular-devkit/core 0.6.8
@angular-devkit/schematics 0.6.8
@angular/cdk 6.3.0
@angular/cli 6.0.8
@angular/flex-layout 6.0.0-beta.16
@angular/material 6.3.0
@ngtools/webpack 6.0.8
@schematics/angular 0.6.8
@schematics/update 0.6.8
rxjs 6.2.1
typescript 2.7.2
webpack 4.8.3
这可能不是最好的方法,但正如您要求的最简单的方法,这里有一个解决方案。
给每个滑块一个 class:
// home.component.hmtl
<mat-slider class="mat-slide-1"></mat-slider>
<mat-slider class="mat-slide-2"></mat-slider>
<mat-slider class="mat-slide-3"></mat-slider>
在您的 styles.scss 中引用这些 class 并在每个 class 中定义您希望更改颜色并使其重要的元素:
// styles.scss
.mat-slide-1 {
.mat-slider-thumb {
background-color: red !important;
}
}
.mat-slide-2 {
.mat-slider-thumb {
background-color: yellow !important;
}
}
.mat-slide-3 {
.mat-slider-thumb {
background-color: green !important;
}
}
此示例仅更改缩略图的颜色,但会检查滑块的元素以找到与您要更改的元素相关的 class。
更正确的解决方案是使用多个主题并将它们分别应用于每个组件。参考 material docs.