【问题标题】:Style checkboxes in mat-select with multiple optionsmat-select 中的样式复选框具有多个选项
【发布时间】:2019-09-16 22:38:26
【问题描述】:

我有一个 mat-select,我正在使用 multiple 选项(请参阅 this example from docs)。
我想设置复选框被选中时的颜色(默认为蓝色)。
所以从这里:

我需要得到这个:

但我不知道应该使用哪个 CSS 选择器/规则。
通常对于复选框我会使用这个:

/deep/.mat-checkbox-checked.mat-accent .mat-checkbox-background, .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background {
    background-color: #A5C73C;
}

但选项不被视为复选框。

HTML

<mat-form-field>
  <mat-select placeholder="Toppings" [formControl]="toppings" multiple>
    <mat-option *ngFor="let topping of toppingList" [value]="topping">{{topping}}</mat-option>
  </mat-select>
</mat-form-field>

【问题讨论】:

    标签: angular angular-material angular7


    【解决方案1】:

    以下 CSS 似乎可以工作,如 this stackblitz 所示:

    ::ng-deep .mat-primary .mat-option.mat-selected:not(.mat-option-disabled) {
        color: unset;
    }
    
    ::ng-deep .mat-option-pseudo-checkbox.mat-pseudo-checkbox-checked {
        background-color: #A5C73C;
    }
    

    【讨论】:

    • 当启用多种模式时,选择组件实际上在内部使用伪复选框,这些模式旨在用于“装饰目的和纯 CSS”(参见 github.com/angular/components/issues/…),与普通的复选框组件。 (应该添加这个来解释 mat-pseudo-checkbox-* 类的实际作用。
    猜你喜欢
    • 2020-11-29
    • 1970-01-01
    • 2020-01-08
    • 2019-02-23
    • 2020-10-30
    • 2021-05-21
    • 2018-08-07
    • 2014-04-30
    • 2018-09-03
    相关资源
    最近更新 更多