【发布时间】:2020-07-02 00:37:47
【问题描述】:
所以我在我的全局 scss 样式中覆盖了角材质样式,如下所示:
.mat-form-field-infix{
padding: 0.5em 0 0.5em 0 !important;
}
然后我想对组件中的同一元素应用不同的填充,因为我需要更多空间来查看更多数据;这是我在组件 scss 样式中所做的:
:host ::ng-deep .mat-form-field-infix{
padding: 0.2em 0 0.2em 0 !important;
}
但最后一个样式在加载后会传播到所有组件。所以问题是如何防止这种行为?
【问题讨论】:
-
使用 css specifity 并删除您的
!important覆盖。 -
如何做到这一点,可以在示例中或指向正确方向的内容中显示@YuriyKravets
-
您是否更改了视图封装? :host 和 ::ng-deep 应该只影响子组件。
-
是的,我已经尝试过类似 ViewEcanpsulation.None 的操作
-
ViewEncapsulation.None 使样式全局化;您需要删除它,
:host ::ng-deep才能按预期工作。
标签: css angular sass angular-material