我有一个角度扩展面板,如下所示。如何将下面箭头的颜色更改为白色?
我的代码(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>
我的代码(TS):
import {Component} from '@angular/core';
/**
* @title Basic expansion panel
*/
@Component({
selector: 'expansion-overview-example',
templateUrl: 'expansion-overview-example.html',
})
export class ExpansionOverviewExample {}
答案 0 :(得分:16)
工作代码如下:
<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>
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 {}
说明:
为Angular动态添加的嵌套元素设置样式 您需要使用特殊选择器::ng-deep的材质组件。 这允许解决view encapsulation。
为了覆盖动态应用的内置组件样式 您需要为选择器增加CSS specificity。那&#39; S 添加其他CSS类特定类的原因。如果你 要使用选择器 :: ng-deep .mat-expansion-indicator:在之后 扩展组件将覆盖它。
答案 1 :(得分:3)
您不必使用ng-deep。相反,您可以将此代码添加到样式表中:
.mat-expansion-panel-header-description,
.mat-expansion-indicator::after {
color: white;
}
请参阅GitHub文档https://github.com/angular/components/tree/master/src/material/expansion
答案 2 :(得分:2)
它以这种方式为我工作
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>
CSS
/deep/ .mat-expansion-indicator::after, .mat-expansion-panel-header-description { color: red;}
答案 3 :(得分:1)
这对我有用 2018
ConcurrentHashMap
<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>
答案 4 :(得分:0)
您可以简单地将其添加到全局styles.css文件中。至少在7.2版中对我有效。
.mat-expansion-indicator::after {
color: green;
}
答案 5 :(得分:0)
您将 encapsulation: ViewEncapsulation.None
属性添加到您的 @Component
装饰器
@Component({
selector: '...',
templateUrl: '...',
styleUrls: ['...'],
encapsulation: ViewEncapsulation.None // <----
})
然后
.mat-expansion-panel-body {
padding: 0 !important;
}
那么这个 CSS 将在使用 !important 或不使用时正常工作
::ng-deep
和 /deep/
不适用于新版本的 angular/material
答案 6 :(得分:-1)
如果您已经使用npm安装了角形材料,并使用.mat-expansion-indicator:after类更改了箭头的颜色,则可以直接在应用程序中直接转到material.scss。