如何设置 mat-select 的面板组件样式。从我得到的文档中,我需要提供 panelClass 所以我使它像这样:
<mat-form-field>
<mat-select placeholder="Search for"
[(ngModel)]="searchClassVal"
panelClass="my-select-panel-class"
(change)="onSearchClassSelect($event)">
<mat-option *ngFor="let class of searchClasses" [value]="class.value">{{class.name}}</mat-option>
</mat-select>
</mat-form-field>
我在开发人员工具中检查了此类已附加到 DOM 中的面板并已附加。所以我有我的自定义 scss 类附加到这个元素。现在,当我提供 css 时,它就不起作用了。例如,我的 scss 如下所示:
.my-select-panel-class {
width:20px;
max-width:20px;
background-color: red;
font-size: 10px;
}
面板的宽度总是等于选择元素的 width
。有时在选项中你有太长的字符串,我想让它更宽一点。有什么办法可以做到这一点。我的组件风格甚至无法正常工作 background-color
无法正常工作。有人知道为什么这行为如此奇怪吗?
我正在使用:Angular 4.4.5 @angular/material: 2.0.0-beta.12
原文由 Marcin Kapusta 发布,翻译遵循 CC BY-SA 4.0 许可协议
对于 Angular9+,根据 this ,您可以使用:
演示
Angular Material 使用
mat-select-content
作为选择列表内容的类名。对于它的样式,我建议四个选项。1. 使用 ::ng-deep :
CSS:
演示
2.使用 ViewEncapsulation
None 值是您打破封装并从组件中设置材质样式所需的值。所以可以在组件的选择器上设置:
打字稿:
CSS
演示
3.在style.css中设置类样式
这次你也必须使用
!important
来“强制”样式。样式.css
演示
4.使用内联样式
演示