【问题标题】:Angular Material - How to change the background color of mat-drawer-containerAngular Material - 如何更改 mat-drawer-container 的背景颜色
【发布时间】:2020-11-26 03:54:49
【问题描述】:

angular 材质 mat-drawer-container 有默认的背景颜色,像这样..

.mat-drawer-container {
    background-color: #fafafa;
    color: rgba(0, 0, 0, 0.87);
}

我想改成..

.mat-drawer-container {
    background-color: #dddddd;
}

我试过了..

encapsulation: ViewEncapsulation.None

important 如下例所示

.mat-drawer-container {
    background-color: #dddddd !important;
}

背景颜色不会改变,它仍然是#fafafa

它适用于.mat-drawer,但不适用于mat-drawer-container

有什么想法吗?

【问题讨论】:

  • 你试过::ng-deep .mat-drawer-container { background-color: #dddddd; } 吗?
  • 它有效,谢谢!,我使用的是角度材料 v10,它仍然有效!我确信::ng-deep 会因为this 而被弃用
  • 不客气,很高兴我能帮上忙。但我会说要小心::ng-deep,它不仅会在您的组件内更改全局样式,请查看此post 以获取其他答案
  • 它可以工作,但我注意到它也会删除垫子扩展面板的背景,所以这个解决方案对我不利。我希望我们能找到一个更好的。谢谢!

标签: angular angular-material


【解决方案1】:

不要覆盖现有的材质类 - 而是将您自己的类应用于元素:

<mat-drawer-container class="red-container">
...
</mat-drawer-container>

并在该特定类上设置样式:

.red-container {
  background-color: red;
}

这可以让您避免 ::ng-deep。

【讨论】:

  • 对于不使用::ng-deep但仍然会影响其他组件的情况,这绝对是一个更好的解决方案,例如,它删除了mat-expansion-panel的背景
  • 绝对不应该——如果是这样,那很可能是你应用的样式之外的东西——很难说,因为你没有提供堆栈闪电战的例子。检查这个:stackblitz.com/edit/angular-sctdmq 它似乎按预期工作,即不影响任何子组件。
  • 很糟糕,它不会影响其他组件的样式。我把它当作一个解决方案!再次感谢@TotallyNewb
  • 这应该是设计有角材料组件的事实。文档中也应该有一个部分。但是,呜呜!!
猜你喜欢
  • 2020-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-01
  • 2021-08-01
相关资源
最近更新 更多