我有一个关于Angular Material主题化的问题,特别是MatFormField指令。可能是在Material v6左右,我发现matFormField
指令有了新的选项,如appearance="fill"
和appearance="outline"
,我发现appearance="fill"
很有用,但我想知道如何改变背景颜色,填充。
我尝试了几种方法,比如,
<input class="w-100 bg-white form-control" #tileFilter
[formControl]="filterBy"
[matAutocomplete]="spiritilesAutocomplete"
[matChipInputFor]="chipList"
placeholder="Search by... Keyword, Author, Title, Story, etc."
>
字符串
我也试着选择
mat-form-field .mat-form-field-flex{
background-color: white;
}
型
和许多其他的选择和样式mat-form-field的变化,特别是,但我找不到css选择器,也没有,在文档中的背景颜色的API引用。我看到材料允许主题的下划线部分和标签,但我想具体目标的背景颜色。有人能给我指出正确的方向吗?
4条答案
按热度按时间5cg8jx4n1#
在这种情况下,在你的组件css文件中使用ng-deep。
字符串
0h4hbjxa2#
您可以尝试:
字符串
5kgi1eie3#
您需要将
!important
添加到background-color值,以使其工作:字符串
y1aodyip4#
如果你使用的是Angular ~v14(不确定确切的版本是否兼容),下面的CSS代码应该可以工作:
字符串
您需要将部分'.mat-form-field-appearance-fill'替换为元素的类。
然而,在v16左右(不确定具体是什么时候),代码停止了工作,现在对我来说这是有效的:
型
请注意,如上所述,在开头添加::ng-deep可能会影响目标之外的元素。避免这种情况的一种方法是将目标元素 Package 在一个div中,为该div分配一个类,并在:ng-deep之前添加类选择器,以仅针对该div中的目标元素。