如何在Angular 5中的mat-menu覆盖上添加类?

Jim*_*mit 6 angular-material2 angular

我检查了mat-menu API(https://material.angular.io/components/menu/api#MatMenu),但我找不到如何在mat-menu cdk overlay上添加一个类.

我想在cdk overlay上添加一个包含mat-menu模板的类.任何人都可以帮助吗?

我想在父CDk叠加上添加类,因为在响应式菜单中没有正确打开.请查看下面的图片.

在此输入图像描述

小智 14

添加backdropClassmat-menu,然后在全局样式文件中添加样式.cdk-overlay-pane我认为那是你想要的风格.例如:

<mat-menu #subMenu="matMenu" backdropClass="sg-vertical-sub-menu">
</mat-menu>

.sg-vertical-sub-menu+* .cdk-overlay-pane {
    margin-top: 12px;
}
Run Code Online (Sandbox Code Playgroud)


Md.*_*fee 5

@Tom Jiang 确实工作得很好,但是在 styles.css 中添加 css 可能有点不方便并且很难找到代码。

更好的方法:如果您只想更改组件而不影响其他组件,则应该向菜单添加一个类。

<mat-menu #infoMenu="matMenu" class="customize"></mat-menu>
Run Code Online (Sandbox Code Playgroud)

然后使用 ::ng-deep 设置菜单样式。

::ng-deep .customize {
  background: red;
}
Run Code Online (Sandbox Code Playgroud)

瞧!您的定制不会影响其他组件。

  • cdk-overlay 不包含在 mat-menu 元素中,它插入到正文中,因此您的解决方案不正确。 (4认同)