Angular Material - 更改所选垫子列表选项的颜色
Angular Material - Change color of mat-list-option on selected
如何更改 mat-list-option
中所选选项的颜色?
现在我有这样的东西:
当前列表
我想把整个选项或卡片'on select'的颜色改成绿色。像这样:
我的代码是这样的:
<mat-selection-list #list>
<mat-list-option *ngFor="let yuvak of yuvaks">
{yuvak.name}
{yuvak.phonenumber}
</mat-list-option>
</mat-selection-list>
下拉:
mat-list-option
有 mat-option.mat-active
选项激活时触发,mat-option.mat-selected
选项被 selected 时触发。将以下内容添加到您的 CSS 以修改活动或 selected 样式,具体取决于您的需要。
.mat-option.mat-active {
background: blue !important;
}
.mat-option.mat-selected {
background: red !important;
}
工作Demo
选择列表:
select离子列表有aria-selected
属性,默认为false
。如果您 select 该项目,它会更改为 true
。您只需按如下方式设置 CSS:
.mat-list-option[aria-selected="true"] {
background: rgba(200, 210, 90, 0.7);
}
工作Demo
您可以使用 mat-list-option
标签中的 aria-selected="true"
属性来定位所选选项,
并为其提供相应的 css 属性。
mat-list-option[aria-selected="true"] {
background: rgba(0, 139, 139, 0.7);
}
接受的答案工作正常,但它使用了硬编码颜色值 (background: rgba(0, 139, 139, 0.7)
)。
如果您决定切换到另一个预构建 material 主题或使用自定义主题(如 Theming your Angular Material app 页所述),这种方法实际上会破坏您的样式和颜色。
因此,如果您使用 SCSS,则可以在组件的样式文件中使用以下代码:
@import '~@angular/material/theming';
mat-list-option[aria-selected="true"] {
background: mat-color($mat-light-theme-background, hover, 0.12);
}
以上代码改编自mat-select options
- 这样,您将在整个应用程序中具有一致的外观:
.mat-option.mat-selected:not(.mat-option-multiple) { background: mat-color($background, hover, 0.12);}
演示:https://stackblitz.com/edit/material-selection-list-5-0-0-selection-color-change-qaq1xr
或者,如果您使用深色主题,请按如下方式更改代码:
mat-list-option[aria-selected="true"] {
background: mat-color($mat-dark-theme-background, hover, 0.12);
}
演示:https://stackblitz.com/edit/material-selection-list-5-0-0-selection-color-change-w8beng
如果你只想使用自定义颜色,我建议从 Material Specs, that are also exposed in Angular Material Design scss 中选择一个。
$primaryPalette: mat-palette($mat-green);
mat-list-option[aria-selected="true"] {
background: mat-color($primaryPalette, 500);
}
演示:https://stackblitz.com/edit/material-selection-list-5-0-0-selection-color-change-tt3nyj
有时使用 [aria-selected]
似乎也 'obtuse'。
您还可以获取节点的选定状态并根据需要使用它。
示例 1:您有一个需要将状态传递给的子组件
<mat-list-option #option>
<app-custom-list-option-widget [selected]="option.selected"></app-custom-list-option-widget>
</mat-list-option>
示例 2:您想设置自定义 css class 而不是使用 [aria-selected]
.is-selected { color: red; }
然后在模板中:
<mat-list-option #option>
<span [class.is-selected]="option.selected"> Option text </span>
</mat-list-option>
对于 mat-list-option 属性 css 更改,
更改悬停 css :
.mat-list-option:hover {
width: 270px!important;
}
更改 OnActive css:
.mat-list-option[aria-selected="true"] {
width: 270px!important;
}
.mat-list-option:active,
.mat-list-text:active{
background-color: none!important;
}
如何更改 mat-list-option
中所选选项的颜色?
现在我有这样的东西:
当前列表
我想把整个选项或卡片'on select'的颜色改成绿色。像这样:
我的代码是这样的:
<mat-selection-list #list>
<mat-list-option *ngFor="let yuvak of yuvaks">
{yuvak.name}
{yuvak.phonenumber}
</mat-list-option>
</mat-selection-list>
下拉:
mat-list-option
有 mat-option.mat-active
选项激活时触发,mat-option.mat-selected
选项被 selected 时触发。将以下内容添加到您的 CSS 以修改活动或 selected 样式,具体取决于您的需要。
.mat-option.mat-active {
background: blue !important;
}
.mat-option.mat-selected {
background: red !important;
}
工作Demo
选择列表:
select离子列表有aria-selected
属性,默认为false
。如果您 select 该项目,它会更改为 true
。您只需按如下方式设置 CSS:
.mat-list-option[aria-selected="true"] {
background: rgba(200, 210, 90, 0.7);
}
工作Demo
您可以使用 mat-list-option
标签中的 aria-selected="true"
属性来定位所选选项,
并为其提供相应的 css 属性。
mat-list-option[aria-selected="true"] {
background: rgba(0, 139, 139, 0.7);
}
接受的答案工作正常,但它使用了硬编码颜色值 (background: rgba(0, 139, 139, 0.7)
)。
如果您决定切换到另一个预构建 material 主题或使用自定义主题(如 Theming your Angular Material app 页所述),这种方法实际上会破坏您的样式和颜色。
因此,如果您使用 SCSS,则可以在组件的样式文件中使用以下代码:
@import '~@angular/material/theming';
mat-list-option[aria-selected="true"] {
background: mat-color($mat-light-theme-background, hover, 0.12);
}
以上代码改编自mat-select options
- 这样,您将在整个应用程序中具有一致的外观:
.mat-option.mat-selected:not(.mat-option-multiple) { background: mat-color($background, hover, 0.12);}
演示:https://stackblitz.com/edit/material-selection-list-5-0-0-selection-color-change-qaq1xr
或者,如果您使用深色主题,请按如下方式更改代码:
mat-list-option[aria-selected="true"] {
background: mat-color($mat-dark-theme-background, hover, 0.12);
}
演示:https://stackblitz.com/edit/material-selection-list-5-0-0-selection-color-change-w8beng
如果你只想使用自定义颜色,我建议从 Material Specs, that are also exposed in Angular Material Design scss 中选择一个。
$primaryPalette: mat-palette($mat-green);
mat-list-option[aria-selected="true"] {
background: mat-color($primaryPalette, 500);
}
演示:https://stackblitz.com/edit/material-selection-list-5-0-0-selection-color-change-tt3nyj
有时使用 [aria-selected]
似乎也 'obtuse'。
您还可以获取节点的选定状态并根据需要使用它。
示例 1:您有一个需要将状态传递给的子组件
<mat-list-option #option>
<app-custom-list-option-widget [selected]="option.selected"></app-custom-list-option-widget>
</mat-list-option>
示例 2:您想设置自定义 css class 而不是使用 [aria-selected]
.is-selected { color: red; }
然后在模板中:
<mat-list-option #option>
<span [class.is-selected]="option.selected"> Option text </span>
</mat-list-option>
对于 mat-list-option 属性 css 更改,
更改悬停 css :
.mat-list-option:hover {
width: 270px!important;
}
更改 OnActive css:
.mat-list-option[aria-selected="true"] {
width: 270px!important;
}
.mat-list-option:active,
.mat-list-text:active{
background-color: none!important;
}