Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 我可以用一些自定义颜色更改“角度材质”复选框的颜色吗?如何更改?_Angular_Angular Material - Fatal编程技术网

Angular 我可以用一些自定义颜色更改“角度材质”复选框的颜色吗?如何更改?

Angular 我可以用一些自定义颜色更改“角度材质”复选框的颜色吗?如何更改?,angular,angular-material,Angular,Angular Material,我正在尝试这样做,但似乎只能将其更改为“主”或“警告”。控制角度材质元素颜色的正确方法是使用不同的托盘,但功能有限。如果需要更多控制,可以添加自定义CSS,在大多数情况下,需要使用::ng deep强制应用样式,例如: ::ng-deep .mat-checkbox .mat-checkbox-frame { border-color: violet; } 这是一个例子,当它选中时,我改变了边框和背景的颜色。您可以按照这种方式实现您想要的任何样式 如果您不熟悉::ng deep,并且不真正

我正在尝试这样做,但似乎只能将其更改为“主”或“警告”。

控制角度材质元素颜色的正确方法是使用不同的托盘,但功能有限。如果需要更多控制,可以添加自定义CSS,在大多数情况下,需要使用
::ng deep
强制应用样式,例如:

::ng-deep .mat-checkbox .mat-checkbox-frame {
  border-color: violet;
}
这是一个例子,当它选中时,我改变了边框和背景的颜色。您可以按照这种方式实现您想要的任何样式

如果您不熟悉
::ng deep
,并且不真正理解,当您需要它时,您可以查看简短的答案

更新1 还有另一种方法是通过封装禁用(感谢@Ventura)。它有权存在,但如果您决定禁用封装,请小心,不要与样式表混淆,因为它的行为与您期望的CSS默认角度逻辑不同

有关更多信息:

因此,请回答:

更新2 此方法已弃用,请参阅详细信息或。

您可以使用此方法:

::ng-deep .mat-checkbox-checked.mat-accent .mat-checkbox-background, .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background, .mat-accent .mat-pseudo-checkbox-checked, .mat-accent .mat-pseudo-checkbox-indeterminate, .mat-pseudo-checkbox-checked, .mat-pseudo-checkbox-indeterminate {
    background-color: red !important; /* Red background for example */
}
在你的css上使用这个

::ng-deep .mat-primary .mat-pseudo-checkbox-checked {
    background: red;
}
您应该使用::ng deep,否则它将无法工作

在你的Html上,像这样使用

<mat-form-field>
  <mat-select placeholder="values" [formControl]="val" multiple>
    <mat-option *ngFor="let v of values" [value]="v">{{v.text}}</mat-option>
  </mat-select>
</mat-form-field>

{{v.text}}

您可以使用此代码更改其框和复选图标:

/deep/ .mat-checkbox.mat-accent {
  .mat-checkbox-frame {
    border: 1px solid dodger-blue;
  }

  &.mat-checkbox-checked .mat-checkbox-background {
    background-color: white;
    border: 1px solid dodger-blue;
  }

  .mat-checkbox-checkmark-path {
    stroke: dodger-blue !important;
  }
}

角材料版本:“7.0.0”

这些答案对我来说不适用于不确定的盒子。下列国家:

::ng-deep .mat-checkbox-checked .mat-checkbox-background,
::ng-deep .mat-checkbox-indeterminate .mat-checkbox-background {
  background-color: #222d32 !important;
}

我特别感兴趣的是更改复选框和标签文本周围框架的颜色。这对我很有用:

div.mat-checkbox-frame {
    border-color: red;
}

span.mat-checkbox-label {
    color: red;
}

你需要CSS还是动态代码?我想CSS就足够了。我是新来的,谢谢你们两位。这就是我所做的:::ng deep.mat-checkbox-checked.mat-accent.mat-checkbox-background、.mat-checkbox-indeterminate.mat-accent.mat-checkbox-background、.mat-accent.mat-pseudo-checkbox-checked、.mat-pseudo-checkbox-indeterminate、,.mat pseudo checkbox undeterminate{背景色:绿色!重要;}如果有帮助的话,你应该至少投票支持我的答案:)deep不受欢迎。@商业自杀我发现了一个解决方案:不确定它是否是最好的,但如果你小心使用全局css内容,它应该会很好。谢谢你,终于找到了解决方案,再次感谢!在开始时添加“:ng deep”,然后开始工作!。谢谢。如果您使用的是Angular的较新版本,则不推荐使用/deep/而不是for::ng deepdeep。对于堆栈溢出,不建议使用纯代码回答,因为它们没有解释如何解决问题。请编辑您的答案,以解释此代码的作用以及它如何回答问题,以便它对OP以及具有类似问题的其他用户有用。对于Angular 9+版本,只需将“/deep/”替换为“::ng deep”。
div.mat-checkbox-frame {
    border-color: red;
}

span.mat-checkbox-label {
    color: red;
}