PrimeNG 菜单栏 Angular 样式
PrimeNG Menubar Angular Styling
我正在使用 primeng 4.3.0 和 Angular 4 开发一个项目,我正在为我的其他页面创建一个水平菜单。我无法更改这些的版本,所以这是问题:
我正在使用菜单栏并尝试使用 ng-deep 更改它的颜色(因为没有其他方法可以更改它)。我读到要访问子菜单的颜色是创建一个新的 class 并调用 ul li:nth-child 并且每个子菜单都有一个数字,因此您可以更改它。问题是:
1) 对于第一个子菜单,我只创建了两个项目,对于第二个子菜单 5。当我调用 ul li:nth-child(3) 时,它在第一个子菜单上创建了一个新行,如图所示.
2)第一个和第二个子菜单顶部有一条白色边框线,我无法摆脱它。
我是做错了什么还是一个错误?这是代码和图像:
模板:
<section>
<div id="menu-box2">
<div class="container">
<div class="row">
<div class="col-12">
<p-menubar #menu [model]="items" styleClass="menucus">
</p-menubar>
</div>
</div>
</div>
</div>
</section>
TS:
import { Component, OnInit } from '@angular/core';
import { MenuItem } from 'primeng/primeng';
@Component({
selector: 'app-report-base-page',
templateUrl: './report-base-page.component.html',
styleUrls: ['./report-base-page.component.scss']
})
export class ReportBasePageComponent implements OnInit {
private items: MenuItem[];
constructor() { }
ngOnInit() {
this.items = [
{
label: 'Riconciliazioni',
items: [
{
label: 'Nexi',
routerLink: ['/report/nexi'],
routerLinkActiveOptions: {
exact: true
}
},
{
label: 'Tico',
routerLink: ['/report/quisque'],
routerLinkActiveOptions: {
exact: true
}
}
]
},
{
label: 'Fatturazione Tico',
routerLink: ['/report/fat_quisque'],
routerLinkActiveOptions: {
exact: true
}
},
{
label: 'Partners fee',
routerLink: ['/report/partnersfee'],
routerLinkActiveOptions: {
exact: true
}
},
{
label: 'SAP',
items: [
{
label: 'Incasso',
routerLink: ['/report/sap_incasso'],
routerLinkActiveOptions: {
exact: true
}
},
{
label: 'Transato',
routerLink: ['/report/sap_transato'],
routerLinkActiveOptions: {
exact: true
}
},
{
label: 'Fee',
routerLink: ['/report/sap_fee'],
routerLinkActiveOptions: {
exact: true
}
},
{
label: 'Ordini pagamento',
routerLink: ['/report/sap_odp'],
routerLinkActiveOptions: {
exact: true
}
},
{
label: 'Esiti Pagamento',
routerLink: ['/report/sap_edp'],
routerLinkActiveOptions: {
exact: true
}
},
]
},
{
label: 'Flusso incassi',
routerLink: ['/report/flussoInc'],
routerLinkActiveOptions: {
exact: true
}
},
{
label: 'Report Alfa Evolution',
routerLink: ['/report/reportAlfa'],
routerLinkActiveOptions: {
exact: true
}
},
];
}
}
SCSS:
::ng-deep .menucus ul li:nth-child(1) {
background: #5393bc;
}
::ng-deep .menucus ul li:nth-child(2) {
background: #5393bc;
}
::ng-deep .menucus ul li:nth-child(3) {
background: #5393bc;
}
::ng-deep .menucus ul li:nth-child(4) {
background: #5393bc;
}
::ng-deep .menucus ul li:nth-child(5) {
background: #5393bc;
}
::ng-deep .ui-menu .ui-menuitem .ui-menuitem-link:hover{
background-color: #5393bc;
}
::ng-deep .ui-menu,.ui-menu .ui-menu-child{
border: 0px;
background:#5393bc 0 0 repeat-x !important;
}
::ng-deep .ui-menu .ui-menuitem .ui-state-active{
background-color: #5393bc;
}
::ng-deep .ui-menu .ui-menuitem.ui-menuitem-active>.ui-menuitem-link,
.ui-menu .ui-menuitem .ui-menuitem-link:hover{
background-color:#186ba0;
}
这是图片
我找到了解决方案。我必须创建一个新的 class 并使用 styleClass 将它绑定到每个项目。
变化:
技术人员:
{
label: 'Riconciliazioni',
items: [
{
label: 'Nexi',
routerLink: ['/report/nexi'],
routerLinkActiveOptions: {
exact: true
},
styleClass: 'menucus'
},
{
label: 'Tico',
routerLink: ['/report/quisque'],
routerLinkActiveOptions: {
exact: true
},
styleClass: 'menucus'
}
]
}
SCSS:
::ng-deep .ui-menu,.ui-menu .ui-menu-child{
border: 0px;
background:#5393bc 0 0 repeat-x !important;
}
::ng-deep .ui-menu .ui-menuitem .ui-menuitem-link:hover{
background-color: #5393bc;
}
::ng-deep .ui-menu .ui-menuitem .ui-state-active{
background-color: #5393bc;
}
::ng-deep .ui-menu .ui-menuitem.ui-menuitem-active>.ui-menuitem-link,
.ui-menu .ui-menuitem .ui-menuitem-link:hover{
background-color:#186ba0;
}
::ng-deep .menucus{
background: #5393bc !important;
}
样式类已添加到 TS 上的每个项目。
我正在使用 primeng 4.3.0 和 Angular 4 开发一个项目,我正在为我的其他页面创建一个水平菜单。我无法更改这些的版本,所以这是问题:
我正在使用菜单栏并尝试使用 ng-deep 更改它的颜色(因为没有其他方法可以更改它)。我读到要访问子菜单的颜色是创建一个新的 class 并调用 ul li:nth-child 并且每个子菜单都有一个数字,因此您可以更改它。问题是:
1) 对于第一个子菜单,我只创建了两个项目,对于第二个子菜单 5。当我调用 ul li:nth-child(3) 时,它在第一个子菜单上创建了一个新行,如图所示.
2)第一个和第二个子菜单顶部有一条白色边框线,我无法摆脱它。
我是做错了什么还是一个错误?这是代码和图像:
模板:
<section>
<div id="menu-box2">
<div class="container">
<div class="row">
<div class="col-12">
<p-menubar #menu [model]="items" styleClass="menucus">
</p-menubar>
</div>
</div>
</div>
</div>
</section>
TS:
import { Component, OnInit } from '@angular/core';
import { MenuItem } from 'primeng/primeng';
@Component({
selector: 'app-report-base-page',
templateUrl: './report-base-page.component.html',
styleUrls: ['./report-base-page.component.scss']
})
export class ReportBasePageComponent implements OnInit {
private items: MenuItem[];
constructor() { }
ngOnInit() {
this.items = [
{
label: 'Riconciliazioni',
items: [
{
label: 'Nexi',
routerLink: ['/report/nexi'],
routerLinkActiveOptions: {
exact: true
}
},
{
label: 'Tico',
routerLink: ['/report/quisque'],
routerLinkActiveOptions: {
exact: true
}
}
]
},
{
label: 'Fatturazione Tico',
routerLink: ['/report/fat_quisque'],
routerLinkActiveOptions: {
exact: true
}
},
{
label: 'Partners fee',
routerLink: ['/report/partnersfee'],
routerLinkActiveOptions: {
exact: true
}
},
{
label: 'SAP',
items: [
{
label: 'Incasso',
routerLink: ['/report/sap_incasso'],
routerLinkActiveOptions: {
exact: true
}
},
{
label: 'Transato',
routerLink: ['/report/sap_transato'],
routerLinkActiveOptions: {
exact: true
}
},
{
label: 'Fee',
routerLink: ['/report/sap_fee'],
routerLinkActiveOptions: {
exact: true
}
},
{
label: 'Ordini pagamento',
routerLink: ['/report/sap_odp'],
routerLinkActiveOptions: {
exact: true
}
},
{
label: 'Esiti Pagamento',
routerLink: ['/report/sap_edp'],
routerLinkActiveOptions: {
exact: true
}
},
]
},
{
label: 'Flusso incassi',
routerLink: ['/report/flussoInc'],
routerLinkActiveOptions: {
exact: true
}
},
{
label: 'Report Alfa Evolution',
routerLink: ['/report/reportAlfa'],
routerLinkActiveOptions: {
exact: true
}
},
];
}
}
SCSS:
::ng-deep .menucus ul li:nth-child(1) {
background: #5393bc;
}
::ng-deep .menucus ul li:nth-child(2) {
background: #5393bc;
}
::ng-deep .menucus ul li:nth-child(3) {
background: #5393bc;
}
::ng-deep .menucus ul li:nth-child(4) {
background: #5393bc;
}
::ng-deep .menucus ul li:nth-child(5) {
background: #5393bc;
}
::ng-deep .ui-menu .ui-menuitem .ui-menuitem-link:hover{
background-color: #5393bc;
}
::ng-deep .ui-menu,.ui-menu .ui-menu-child{
border: 0px;
background:#5393bc 0 0 repeat-x !important;
}
::ng-deep .ui-menu .ui-menuitem .ui-state-active{
background-color: #5393bc;
}
::ng-deep .ui-menu .ui-menuitem.ui-menuitem-active>.ui-menuitem-link,
.ui-menu .ui-menuitem .ui-menuitem-link:hover{
background-color:#186ba0;
}
这是图片
我找到了解决方案。我必须创建一个新的 class 并使用 styleClass 将它绑定到每个项目。 变化: 技术人员:
{
label: 'Riconciliazioni',
items: [
{
label: 'Nexi',
routerLink: ['/report/nexi'],
routerLinkActiveOptions: {
exact: true
},
styleClass: 'menucus'
},
{
label: 'Tico',
routerLink: ['/report/quisque'],
routerLinkActiveOptions: {
exact: true
},
styleClass: 'menucus'
}
]
}
SCSS:
::ng-deep .ui-menu,.ui-menu .ui-menu-child{
border: 0px;
background:#5393bc 0 0 repeat-x !important;
}
::ng-deep .ui-menu .ui-menuitem .ui-menuitem-link:hover{
background-color: #5393bc;
}
::ng-deep .ui-menu .ui-menuitem .ui-state-active{
background-color: #5393bc;
}
::ng-deep .ui-menu .ui-menuitem.ui-menuitem-active>.ui-menuitem-link,
.ui-menu .ui-menuitem .ui-menuitem-link:hover{
background-color:#186ba0;
}
::ng-deep .menucus{
background: #5393bc !important;
}
样式类已添加到 TS 上的每个项目。