首页 > 解决方案 > Angular 7 Material `panelClass` 属性应该如何使用?

问题描述

Angular 5 Material Snackbar panelClass config是一个非常相似的问题,只是涉及大量猜测,我正在努力使其在 Angular 7 中工作。

API非常简单。提供一个string | string[]我认为是类名的。

但是您在哪里定义这些样式以及涉及的语法是什么?有标准方法吗?

一个天真的猜测是把panelClass: ['my-class']then instyles.css

.my-class{
   text-align: center;
}

但这似乎并不那么简单。尤其是我看的时候ViewEncapsulation。Snackbars 似乎是全局样式,我真的不知道不会违反作用域样式的技术。

ng-deep离开了我们,但他们提到:

因此,我们计划放弃对 Angular 的支持(对 /deep/、>>> 和 ::ng-deep 的所有 3 个)。在此之前 ::ng-deep 应该是首选,以便与工具更广泛地兼容。

我还没有看到推荐的贬低功能,并且不确定未来会怎样。

标签: angularangular-material2

解决方案


使用覆盖的组件(如小吃店和对话框)的 DOM 不是“启动”覆盖组件的父组件的 DOM 的后代。因此,由于封装的原因,即使使用深度选择器,尝试从父组件的 CSS/Sass 对其进行样式设置也是徒劳的。因此该样式(使用该panelClass选项指定的类)需要存在于全局样式表中。所以你的“天真猜测”是正确的——就是这么简单。


推荐阅读