【问题标题】:md-checkbox Angular materials stylingmd-checkbox Angular 材质样式
【发布时间】:2017-09-08 04:39:28
【问题描述】:

在 Angular4 中使用 Angular 材质,我无法找到在选中后更改复选框颜色的方法。

在初始视图中修改样式的唯一方法是:

:host /deep/ .mat-checkbox-inner-container{
     height:15px;
     width:15px; 
     background-color: rgba(0, 255, 0, 0.87);
}

检查后尝试更改样式,以下方法无效:

:host /deep/ .mat-checkbox-checked {
background-color:yellow;   
}

它实际上是在检查后应用的,但在错误的元素中 - 没有应用在内部容器上。

:host /deep/ .mat-checkbox-inner-container-checked 之类的东西也不起作用。

欢迎任何帮助。

【问题讨论】:

标签: css angularjs angular-material2


【解决方案1】:

试试这个:)

.mat-checkbox-checked.mat-accent .mat-checkbox-background, .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background {
  background-color: rgb(27, 142, 241) !important;
}

.mat-ripple-element {
  background: rgba(27, 142, 241, .4) !important;
}

【讨论】:

  • 就我而言,我必须在两条起跑线之前添加::ng-deep。我希望这对其他人有帮助。
  • ::ng-deep 是必需的,因为@SamersSalib 提到了
【解决方案2】:

试试这个:)

/deep/ .mat-checkbox-checked.mat-accent .mat-checkbox-background,
       .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background
{
  background-color: rgb(27, 142, 241) !important;
}

/deep/ .mat-ripple-element {
  background: rgba(27, 142, 241, .4) !important;
}

这里/deep/ 很重要,否则它将不起作用。根据 Angular 文档:

组件样式通常只适用于组件自己模板中的 HTML。

使用/deep/ shadow-piercing 后代组合器强制样式通过子组件树向下进入所有子组件视图。 /deep/ 组合器适用于任何深度的嵌套组件,它适用于组件的视图子项和内容子项。

/deep/ 组合器还有别名 >>>::ng-deep

——https://angular.io/guide/component-styles#deprecated-deep--and-ng-deep

【讨论】:

    【解决方案3】:

    尝试使用.md-checkbox.md-checked 参考Checkbox Styling

    :host /deep/ .md-checkbox.md-checked .md-icon {
       background-color:yellow!important;   
    }
    

    【讨论】:

    • 对我不起作用。仍然保持默认(粉红色)颜色。
    • 尝试使用.md-checkbox.md-checked!important
    • @RohanKumar,您共享的链接是针对 AngularJS 材料的... OP 指定了 Angular 4。material.angular.io 可能会有所帮助。
    【解决方案4】:

    尝试将encapsulation: ViewEncapsulation.None 添加到您的component.ts 文件中

    在css中:

    .mat-checkbox-checked.mat-accent .mat-checkbox-background,
    .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background {
      background: yellow;
    }
    

    【讨论】:

      猜你喜欢
      • 2015-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-08
      • 2019-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多