将padding:0 放在垫卡上。为了更正填充,在 mat-content 上添加边距。
使用特定的类名来设置卡片样式:
.mat-card-header{
background-color:red !important;
padding:5px !important;
}
.mat-card{
padding:0 !important;
}
.mat-card-content{
padding:5px !important;
}
Demo
旧答案:
我建议四个选项。
1.使用::ng-deep。
使用 /deep/ 穿透阴影的后代组合器来强制样式
通过子组件树向下进入所有子组件
意见。 /deep/ 组合器适用于任何深度的嵌套组件,
它适用于视图子项和内容子项
零件。
仅在模拟视图封装中使用 /deep/、>>> 和 ::ng-deep。
Emulated 是默认和最常用的视图封装。为了
更多信息,请参阅控制视图封装部分。这
不推荐使用穿透阴影的后代组合器,并且支持
被从主要浏览器和工具中删除。因此,我们计划放弃
Angular 中的支持(适用于 /deep/、>>> 和 ::ng-deep 的所有 3 个)。直到
那么 ::ng-deep 应该是首选,以获得更广泛的兼容性
工具。
CSS:
::ng-deep .mat-card-header{
background-color:red !important;
padding:5px !important;
}
::ng-deep .mat-card{
padding:0 !important;
}
::ng-deep .mat-card-content{
padding:5px !important;
}
DEMO
2。使用ViewEncapsulation
... 组件的 CSS 样式被封装到组件的视图中,并且
不影响应用程序的其余部分。
为了控制这种封装如何在每个组件的基础上发生,
您可以在组件元数据中设置视图封装模式。
从以下模式中选择:
……
None 意味着 Angular 没有视图封装。 Angular 添加了
CSS 到全局样式。范围规则、隔离和
前面讨论的保护措施不适用。这本质上是
与将组件的样式粘贴到 HTML 中一样。
无值是您从组件设置材质样式所需的值。 Angular 材质使用mat-select-content 作为选择列表的类名。
所以可以在组件的选择器上设置:
打字稿:
import {ViewEncapsulation } from '@angular/core';
....
@Component({
....
encapsulation: ViewEncapsulation.None
})
CSS
.mat-card-header{
background-color:red !important;
padding:5px !important;
}
.mat-card{
padding:0 !important;
}
.mat-card-content{
padding:5px !important;
}
DEMO
3.在 style.css 中设置样式
style.css
.mat-card-header{
background-color:red !important;
padding:5px !important;
}
.mat-card{
padding:0 !important;
}
.mat-card-content{
padding:5px !important;
}
DEMO
4.使用内联样式
HTML
<mat-card style="padding:0">
<mat-card-header style="background-color:red;padding:5px}">
<mat-card-title>Title</mat-card-title>
<mat-card-subtitle>Subtitle</mat-card-subtitle>
</mat-card-header>
<mat-card-content style="padding:5px !important;">
Body text
</mat-card-content>
</mat-card>
DEMO