我为我的应用程序使用了几个菜单,为此使用了有角材质的垫菜单组件。我可以通过在全局CSS文件中为菜单原始类编写CSS代码来更改所有菜单的样式。但是当我想使用.custom-class-name .original-material-class-name {}向其中一种添加某些特定样式时,不会将这些样式应用于该菜单。
这是整个应用中的堆叠闪电战:app
header.component.html:
<div>
<a mat-button class="theme-menu-toggle-button" *ngIf="!menuAvailable"
(click)="changeSidenavMode(!mode)">
<mat-icon>menu</mat-icon>
</a>
<a href="#" fxHide.lt-md fxShow.gt-sm class="theme-user" mat-button
[matMenuTriggerFor]="menu">
<img src="assets/images/user.png" class="theme-profile-image rounded-circle">
<span class="theme-profile-title">نام نامخانوادگی</span>
</a>
<mat-menu #menu="matMenu" class="profile-menu">
<button mat-menu-item *ngFor="let option of profileOptions">
<mat-icon>{{option.icon}}</mat-icon>
<span>{{option.title}}</span>
</button>
</mat-menu>
styles.css:
.profile-menu .cdk-overlay-pane::before{
width: 0;
height: 0;
border-left: 8px solid transparent;
border-right: 8px solid transparent;
border-bottom: 15px solid #5E35B1;
content: " ";
position: absolute;
top: 10px !important;
animation: fadeInRightBig 0.75s;
}
答案 0 :(得分:1)
在背景菜单的垫菜单中添加自定义类:
<button mat-button [matMenuTriggerFor]="menu">Menu</button>
<mat-menu #menu="matMenu" backdropClass="custom__menu">
<button mat-menu-item>Item 1</button>
<button mat-menu-item>Item 2</button>
</mat-menu>
.custom__menu + * .cdk-overlay-pane > div.mat-menu-panel > div.mat-menu-content {
background-color: #777;
button.mat-menu-item {
color: white;
}
}
答案 1 :(得分:0)
将样式添加到header.component.css,并将其导入页面中:
@Component({
selector: 'my-selector',
templateUrl: './header.component.html',
styleUrls: ['./header.component.css']
})
更新:您需要在CSS标记的末尾添加!important标记。
.profile-menu .cdk-overlay-pane::before{
width: 0 !important;
height: 0 !important;
border-left: 8px solid transparent !important;
border-right: 8px solid transparent !important;
border-bottom: 15px solid #5E35B1 !important;
content: " " !important;
position: absolute !important;
top: 10px !important;
animation: fadeInRightBig 0.75s !important;
}
答案 2 :(得分:0)
答案 3 :(得分:0)
只需在mat-menu元素上设置所需的任何类。
<mat-menu #menu="matMenu" class="providers-menu" xPosition="after" yPosition="below">
...
</mat-menu>
您可以使用:: ng-deep
在组件中设置菜单样式::ng-deep .mat-menu-panel.providers-menu {
margin-top: 65px;
background-color: #263358;
}
有关更多信息,请参见以下github问题: https://github.com/angular/components/issues/10322