为了明确事情: styleClass
属性仅是组件原始类的补充。这意味着您必须始终使用原始类来为组件设置样式。使用 styleClass
,您可以定位同一类型多个组件中的一个或多个组件。所以,如果有五个 Togglebutton
组件,您通常可以为这些组件设置样式:
.ui-togglebutton.ui-button.ui-state-active{}
如果您希望以不同的样式呈现其中的某个组件,则可以添加styleClass
属性:
<p-toggleButton styleClass="different"></p-toggleButton>
现在你可以通过以下方式在你的CSS中使用这个:
.different.ui-togglebutton.ui-button.ui-state-active{}
因此,styleClass
不是原始选择器的替代品,而是一种补充。
<p-tabMenu styleClass="override-this"></p-tabMenu>
我认为它可以与任何接受styleClass的PrimeNg组件一起使用。
在根样式表文件中,您只需使用body,然后是styleClass名称。
body .override-this{
font-size: 10px;
}
我没有测试其他属性,如果您需要更深层次的更改,则可能需要级联使用
body .override-this .ui-tabmenu .ui-tabmenu-nav
等等。
:host
与 ::ng-deep
一起使用。:host ::ng-deep .test {
background: red;
}
::ng-deep
可能会在未来被移除。请参见这个SO问题。p-dropdown的示例
.p-dropdown {
&.add-attr-dropdown {
border: 0px;
}
}
这里 add-attr-dropdown
是您自定义的类名
.test.ui-state-highlight, .test.ui-togglebutton.ui-button.ui-state-active {}
。我找不到其他可以使用“styleClass”的方法。 - SheldonstyleClass
的唯一方式。而styleClass
的作用就是区分不同的类似组件(比如两个数据表)。 - Chau Tran