更改角度材质的默认扩展面板箭头颜色

Clo*_*eph 5 angular-material2 angular

我有一个角度扩展面板,如下所示.如何将下面箭头的颜色更改为白色?

我的代码(HTML):

<md-expansion-panel>
  <md-expansion-panel-header>
    <md-panel-title>
      Personal data
    </md-panel-title>
    <md-panel-description>
      Type your name and age
    </md-panel-description>
  </md-expansion-panel-header>

  <md-form-field>
    <input mdInput placeholder="First name">
  </md-form-field>

  <md-form-field>
    <input mdInput placeholder="Age">
  </md-form-field>
</md-expansion-panel>
Run Code Online (Sandbox Code Playgroud)

我的代码(TS):

import {Component} from '@angular/core';

/**
 * @title Basic expansion panel
 */
@Component({
  selector: 'expansion-overview-example',
  templateUrl: 'expansion-overview-example.html',
})
export class ExpansionOverviewExample {}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Gre*_*ake 20

工作代码如下:

<md-expansion-panel>
  <md-expansion-panel-header class="specific-class">
    <md-panel-title>
      Personal data
    </md-panel-title>
    <md-panel-description>
      Type your name and age
    </md-panel-description>
  </md-expansion-panel-header>

  <md-form-field>
    <input mdInput placeholder="First name">
  </md-form-field>

  <md-form-field>
    <input mdInput placeholder="Age">
  </md-form-field>
</md-expansion-panel>
Run Code Online (Sandbox Code Playgroud)
import {Component} from '@angular/core';

/**
 * @title Basic expansion panel
 */
@Component({
  selector: 'expansion-overview-example',
  templateUrl: 'expansion-overview-example.html',
  styles: [`
    ::ng-deep .specific-class > .mat-expansion-indicator:after {
      color: white;
    }
  `],
})
export class ExpansionOverviewExample {}
Run Code Online (Sandbox Code Playgroud)

说明:

  1. 为了设置由Angular Material组件动态添加的嵌套元素的样式,您需要使用特殊的selector :: ng-deep.这允许解决视图封装问题.

  2. 为了覆盖动态应用的内置组件样式,您需要增加选择器的CSS特异性.这就是添加额外的CSS类特定类的原因.如果你要使用selector :: ng-deep .mat-expansion-indicator: 扩展组件将覆盖它.

  • Angular 9 更新:使用“border-color:white;”代替“color:white;” (4认同)
  • 看起来 [::ng-deep](https://angular.io/guide/component-styles#special-selectors) 已被弃用。有一个更好的方法吗? (2认同)

小智 6

您不必使用 ng-deep。相反,您可以将此代码添加到样式表中:

.mat-expansion-panel-header-description, 
.mat-expansion-indicator::after {
    color: white;
}
Run Code Online (Sandbox Code Playgroud)

请参阅 GitHub 文档https://github.com/angular/components/tree/master/src/material/expansion


frf*_*dev 5

它以这种方式对我有用

html

<mat-accordion>
        <mat-expansion-panel class="specific-class"> 
          <mat-expansion-panel-header>
            <a mat-button>Lorem ipsum dolor sit amet.</a>
          </mat-expansion-panel-header>
          <ul>
            <li>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nobis, placeat.</li>
            <li>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nobis, placeat.</li>
            <li>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nobis, placeat.</li>
            <li>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nobis, placeat.</li>
            <li>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nobis, placeat.</li>
          </ul>
        </mat-expansion-panel>
      </mat-accordion>
Run Code Online (Sandbox Code Playgroud)

css

/deep/ .mat-expansion-indicator::after, .mat-expansion-panel-header-description { color: red;}
Run Code Online (Sandbox Code Playgroud)