Pol*_*fox 9 html css angular-material2 angular
我是Angular 2 Material的新手,我正在尝试自定义md-menu组件的样式.
<md-icon class="material-icons" [mdMenuTriggerFor]="menu">dehaze</md-icon>
<md-menu #menu="mdMenu" [overlapTrigger]="false">
<button md-menu-item>Item 1</button>
<button md-menu-item>Item 2</button>
</md-menu>
Run Code Online (Sandbox Code Playgroud)
预定义的样式设置工作正常(例如将菜单设置为非重叠),但我想将md菜单设置为100%宽度并在md-icon按钮之间留出一点空间,这会扩展菜单,我不能使用Angular 2 Material的预定义指令.
到目前为止,我找到了使用/ deep/css命令的解决方案,但我读到主要浏览器不再支持该命令.
定制Angular 2 Material组件的好方法是什么?我怎样才能设置我的md菜单样式,以便它具有100%的宽度和扩展按钮之间的一些空间?
为了说明我在说什么: 菜单草稿
Wil*_*ell 12
您可以将自定义类传递给菜单.
<md-menu #menu="mdMenu" [overlapTrigger]="false" class="my-full-width-menu">
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用全局样式定位该类.
不幸的是,根据您的需要,您需要了解有关菜单叠加位置的一些信息,并对某些重新定位进行硬编码
.mat-menu-panel.my-full-width-menu {
max-width: none;
width: 100vw;
margin-left: -8px;
margin-top: 24px;
}
Run Code Online (Sandbox Code Playgroud)
在正确的做到这一点的方法是创建与材料的OverlayModule定制覆盖组件(在材料封装电流,但很快就被移动到CDK).
在Angular中,ViewEncapsulation.Emulated是默认选项,这意味着它试图通过向主机元素等添加代理键来缩小影响范围.一个选项可能是添加到css下面.但是请注意,这个ng-deep也将很快被弃用.必须等待才知道替代方案!https://angular.io/guide/component-styles#deprecated-deep--and-ng-deep
::ng-deep .mat-menu-panel {
max-width: none!important;
min-width: 400px!important;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11383 次 |
| 最近记录: |