【问题标题】:Angular material stepper change icon color角材料步进器更改图标颜色
【发布时间】:2019-07-01 15:13:46
【问题描述】:

我正在使用 angular 6 和 angular 材料。我正在使用角材料的垫子步进器。想要更改默认、活动和访问步骤的垫子图标颜色。 请问有人可以帮忙吗?

:host /deep/ mat-horizontal-stepper .mat-horizontal-stepper-header-container .mat-step-icon {
    background-color: "red" !important;
    color: #fff !important;
}

.mat-step-icon-selected,
.mat-step-icon-state-done,
.mat-step-icon-state-edit {
  background-color: "blue";
  color:#fff;
}  

也试过这个:

/deep/ mat-step-header.mat-horizontal-stepper-header > div.mat-step-icon-selected {
    background-color:'red';
}

但不工作

谢谢

【问题讨论】:

标签: angular angular-material


【解决方案1】:

.mat-step-header .mat-step-icon-selected, .mat-step-header .mat-step-icon-state-done, .mat-step-header .mat-step-icon-state-编辑 { 背景颜色:#673ab7; 颜色:#fff; }

【讨论】:

  • 这不是和接受的答案一样吗?!看起来像相同的类列表。
【解决方案2】:

您可以直接在 HTML 中覆盖图标集。

<mat-horizontal-stepper>
    <!-- Icon overrides. -->
    <ng-template matStepperIcon="edit">
        <mat-icon>account_circle</mat-icon>
    </ng-template>
    <ng-template matStepperIcon="active">
        <mat-icon>account_circle</mat-icon>
    </ng-template>
    <ng-template matStepperIcon="done">
        <mat-icon>account_circle</mat-icon>
    </ng-template>
    <ng-template matStepperIcon="number">
        <mat-icon>account_circle</mat-icon>
    </ng-template>
</mat-horizontal-stepper>

它甚至可以使用很棒的字体:

<mat-horizontal-stepper>
    <!-- Icon overrides. -->
    <ng-template matStepperIcon="edit">
        <i class="fa fa-check-circle"></i>
    </ng-template>
    <ng-template matStepperIcon="active">
        <i class="fa fa-dot-circle-o"></i>
    </ng-template>
    <ng-template matStepperIcon="done">
        <i class="fa fa-dot-circle-o"></i>
    </ng-template>
    <ng-template matStepperIcon="number">
        <i class="fa fa-dot-circle-o"></i>
    </ng-template>
</mat-horizontal-stepper>

如需更改颜色和其他自定义,请查看https://stackoverflow.com/a/66428028/4184651

【讨论】:

    【解决方案3】:

    组件样式的解决方案(使用视图封装)

    与@mruanova 大致相同,但使用视图封装,因此样式可以在组件上,例如a-stepper.component.css:

    /**
        Change color of stepper icon to green, when completed.
        - NOTE: requires 'encapsulation: ViewEncapsulation.None' in component definition
     */
    .mat-step-header .mat-step-icon-state-done,
    .mat-step-header .mat-step-icon-state-edit {
        background-color: green !important;
    }
    

    查看组件封装:

    @Component({
        selector: 'a-stepper',
        templateUrl: './a-stepper.component.html',
        styleUrls: ['./a-stepper.component.css'],
        providers: [{
            provide: STEPPER_GLOBAL_OPTIONS, useValue: {showError: true}
        }],
        encapsulation: ViewEncapsulation.None
    })
    export class AStepperComponent implements OnInit {
    

    注意:我的 css 也略有不同,因为只影响背景,因为我打了一个绿色的勾,而不是用原色编辑。

    【讨论】:

      【解决方案4】:

      我尝试使用@mruanova 的答案,我很棒,但我只想在选择它时将步骤设为红色。

      如果您只想在选择步骤时应用红色,请在父样式文件上使用以下 css:

          .mat-step-icon-selected {
          background-color: red !important;
          color: red !important;
      }
      

      【讨论】:

        【解决方案5】:

        我可以使用项目根目录下的styles.css文件中的以下样式而不是组件的样式表将颜色更改为红色

        .mat-step-header .mat-step-icon-selected, .mat-step-header .mat-step-icon-state-done, 
        .mat-step-header .mat-step-icon-state-edit {
            background-color: red !important;
            color: red !important;
        }
        

        要隐藏每个步骤中的数字,只需使用 ng-star-inserted 类的样式中的 display none

        .ng-star-inserted {display: none}
        

        【讨论】:

        • 很好用。如何删除圆圈内的数字,即图标本身。我尝试了以下。但更改仅用于编辑。不确定其他名称是什么,例如“完成”、“编辑”、...
        • 我修改了答案以回答您关于如何删除圆圈内数字的问题。
        • 谢谢。但这会在我添加 ng-start 后立即缩小整个控件...
        • 在我向您展示了如何更改角材料步进器的样式后,我相信您会自己弄清楚,谢谢 :)
        猜你喜欢
        • 2019-04-12
        • 2019-07-27
        • 1970-01-01
        • 1970-01-01
        • 2018-05-11
        • 2020-01-15
        • 2021-09-19
        • 1970-01-01
        • 2020-08-03
        相关资源
        最近更新 更多