let dialogRef = dialog.open(MyDialogComponent, {
panelClass: 'my-css-class'
});
.my-css-class .mat-dialog-container{
/* add your styles */
}
component.css
文件在您的component.css
文件中写入::ng-deep <selector>
以覆盖Material应用的CSS。
style.css
文件如果您将CSS写入位于Angular项目根文件夹中的style.css
文件,则不必在选择器前添加::ng-deep
。
::ng-deep
很好用,可以覆盖CSS样式。谢谢。 - YannickN.fr:host ::ng-deep
选择器设置背景颜色,但我发现在这种情况下:host
似乎不起作用。 - Pran Kumar Sarkar在浏览器上启用F12调试,你会发现mat-dialog-container标签不属于app-root。 因此,你需要在styles.scss文件中全局更改mat-dialog-container的CSS:
mat-dialog-container {
background-color: greenyellow !important;
}
另一种方法是在 styles.scss 中全局更改 Material 主题。
如果您想为对话框更改不同的背景颜色,请将背景颜色设置为透明。然后为对话框组件设置背景颜色。
styles.scss:
mat-dialog-container {
background-color: transparent !important;
padding: 0px 0px 0px 0px !important;
overflow: hidden !important;
}
mdc-dialog__surface
类。.mdc-dialog__surface {
background-color: red !important;
}
::ng-deep .mat-mdc-dialog-container {
--mdc-dialog-container-color: #c9e4d9;
}
百分之百有效 在你的component.ts文件中
const dialogCompRef = this.dialog.open(YourDialogComponent,{
width:'700px',
height:'550px',
panelClass: 'bg-color' // Add your custom panel class
});
将此添加到styles.scss中
.bg-color .mat-dialog-container{
background-color: red;
}
尽量避免使用::ng-deep,因为它已经被弃用。
保留全局样式表。如果将其拆分为多个样式表,请确保您覆盖材料组件主题的样式表位于后面的顺序中。
这将导致覆盖材料类,否则您仍将看到来自材料深色背景的颜色。我犯了这个愚蠢的导入错误。
我在对话框的一个根级别scss文件中添加了这个($grey是我的自定义版本)。
mat-dialog-container {
background: $grey !important;
}
注意:
'!important'
在这里很重要 :)
purple-green.css
主题,该主题基于对话框使用的主要和强调颜色。这个预构建的主题故意是一个黑暗主题。如果您不打算使用此主题,则仍然有其他2个浅色主题可供选择:indigo-pink.css
或deeppurple-amber.css
。请查看主题指南以获取更多信息:https://material.angular.io/guide/theming#using-a-pre-built-theme - Edricpurple-green
改为indigo-pink
,问题得到了解决。谢谢。 - YannickN.fr