【发布时间】:2018-04-23 13:59:29
【问题描述】:
我在一个 Angular 5 应用程序中使用 PrimeNG 库 (https://www.primefaces.org/primeng),我已经意识到,如果我在带有 ViewEncapsulation.Emulated 的 Angular 组件中使用它的一些控件,我不能对它们应用任何自定义风格给他们。
例如,我在组件中使用p-checkbox 控件,并且在其样式文件中有以下(可怕的)CSS 规则:
th {
background-color: olive !important;
}
.ui-chkbox {
background-color: aqua !important;
height: 2.5rem !important;
}
注意:ui-chkbox 是包含复选框的 DIV。
如果我设置encapsulation: ViewEncapsulation.None,效果如下:
如果我改为encapsulation: ViewEncapsulation.Emulated,它看起来像:
如您所见,组件th 标签仍在设置样式,但复选框组件未设置样式。我认为模拟视图封装旨在“隔离”组件样式,因此它们不会与外部定义的其他样式发生冲突,但它似乎也会影响内部组件。
有人能解释一下这种行为吗?我已经阅读了几个封装教程,但找不到原因。
谢谢!
【问题讨论】:
标签: angular