使用ViewEncapsulation打开不同的对话框时,Mat-Dialog样式会更改。无

时间:2019-09-14 11:18:12

标签: angular sass angular-material styles encapsulation

我的代码中有许多不同的<mat-dialog>元素。我想使用ViewEncapsulation.None,以便可以将棱角材料给定的默认样式定制为<mat-tab><mat-dialog-container>。当我第一次打开对话框时,样式应保持应有的状态,但是如果我打开其他对话框,则开始的所有样式都将相互结合。


我想了解为什么会这样,我有什么选择。 (我宁愿避免使用::ng-deep

1 个答案:

答案 0 :(得分:1)

通过使用ViewEncapsulation。您无需将所有样式都移到顶层,因此它将开始应用于DOM中的所有元素。因此,如果您想对其进行自定义,则可以使用一些选项

  • 垫子对话框选项,您可以传递“ panelClass”和“ backdropClass”。 使用此类,您可以自定义
  • 您可以向要自定义的所有对话框添加通用类,并在global style.css中编写样式。将您的样式范围设置为普通类,以便与其他样式重叠