Angular Material of different mat-menu-itemのmat-menuを使用し、メニューアイテムのリストをボタンと同じサイズにしたいと考えています。
それが私が持っているものです:
そして私が望むこと:
Cssでメニューのサイズを変更しようとしましたが、正しく機能しません。
CSS:
.cdk-overlay-pane {width: 100%;}
.mat-menu-panel {width: 100%;}
HTML:
<button mat-raised-button [matMenuTriggerFor]="menu" class="btn-block btn-blue">
<div fxLayout="row" fxLayoutAlign="center center">
<mat-icon>more_vert</mat-icon>
<span fxFlex>OPTION</span>
</div>
</button>
<mat-menu #menu="matMenu">
<button mat-menu-item>
<mat-icon>unarchive</mat-icon>
<span>First</span>
</button>
<button mat-menu-item>
<mat-icon>file_copy</mat-icon>
<span>Second</span>
</button>
</mat-menu>
私のマットメニューに StackBlitz HERE を実行しました。
前もって感謝します!
EDIT:bootstrap class "btn-block"で応答ボタンを使用しているため、コードを変更しました。
私は本当にきれいではない解決策を見つけました、しかしここにあります: StackBlitz HERE
誰かがCSSソリューションを持っているなら、私は興味があります。
HTML:
<button mat-raised-button [matMenuTriggerFor]="menu" class="btn-block btn-blue" id="button">
<div fxLayout="row" fxLayoutAlign="center center">
<mat-icon>more_vert</mat-icon>
<span fxFlex>OPTION</span>
</div>
</button>
TS:
export class AppComponent implements DoCheck{
ngDoCheck(){
var widthButton=document.getElementById("button").offsetWidth;
var elems = document.getElementsByClassName('mat-menu-panel');
for(var i = 0; i < elems.length; i++) {
elems[i].style.width = widthButton+"px";
}
}
}
CSS:
.cdk-overlay-pane {width: 100%!important;}
.mat-menu-panel {max-width: 100%!important; min-width: 64px!important;}
デモ: