我希望能够按组件级别覆盖primeng组件的样式,而不是整个应用程序。 我必须更改主题中的样式 theme.css
文件或内联样式,但似乎内联样式有时无法按预期工作。 例如,我必须使用
<p-dropdown [options]="cities" formControlName="selectedCity"></p-dropdown>
我需要根据文档更改类名为ui-dropdown-item
的样式。
我需要同一个组件使用两种不同的样式,应该采取什么正确的方法?
因为>>>
已经被弃用,现在需要使用::ng-deep
替代。
适用于material2 v6
和primeng v5.2.*
。
:host {
::ng-deep .prime-slider-override {
background-color: #26A3D1;
background-image:none;
border:none;
color:white;
.ui-slider-range {
background: red;
}
}
}
<p-slider [(ngModel)]="rangeValues"
styleClass="prime-slider-override"></p-slider>
尝试使用
:host >>> .ui-dropdown-item {...}
您不需要任何包围的 div 或将样式添加到主 style.css
。
:host ::ng-deep { Your styles }
- Alex Beugnet关闭组件中的视图封装,然后添加样式。
@Component({
selector: 'new-employee-flow',
templateUrl: './app/components/my.html',
styleUrls: ['./app/components/my.css'],
encapsulation: ViewEncapsulation.None
})
<div class="myOverride">
.myOverride .ui-dropdown-item {...}
这样只有被包装的组件才会被设置样式。
<p-menubar [model]="items" [style]="{'background-color': 'red'}">
</p-menubar>
[style]="{'width':'285px'}" [inputStyle]="{'width':'285px'}"
这仅适用于内联样式。在上述情况下,我正在将自动完成下拉菜单的宽度更改为285px。对我有用。
<p-dropdown [options]="cities" [(ngModel)]="selectedCity"></p-dropdown>
相应的样式将会如下所示
.ui-dropdown {
background-color:black;
}
.ui-dropdown-label {
color:white;
}
.ui-dropdown-label:hover{
color:red
}
.ui-dropdown-item {
color:white;
background-color:black;
}
angular.json
中将 styles.css 放在最后一位的这个提示,让我能够删除之前开发人员的 CSS 中很多!important
,并编写更简明的 CSS 规则。 - Rin and Len