You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何自定义Angular Material的mat-menu-item以显示多行文本?

解决Mat-Menu-Item多行文本自定义样式问题

Angular Material的mat-menu-item默认设置了固定高度和overflow: hidden,导致超出内容被隐藏,所以你的多行文本只显示第一行。可以通过以下方法解决:

自定义CSS覆盖默认样式

给目标菜单项添加自定义类,取消固定高度并允许文本换行:

样式代码

/* 针对MDC风格的Angular Material(较新版本) */
.custom-multi-line-item {
  height: auto !important;
  white-space: normal;
  padding: 8px 16px; /* 调整内边距适配多行内容 */
}

/* 针对旧版非MDC风格 */
/* .custom-multi-line-item {
  height: auto !important;
  white-space: normal;
  padding: 8px 16px;
} */

HTML代码

<mat-menu>
  <div mat-menu-item class="custom-multi-line-item">
    <div>Text1</div>
    <div style="font-size: 12px; color: #666;">Text2</div>
  </div>
</mat-menu>

配合Flex布局组织内容

通过Flex布局让菜单项内部内容垂直排列,同时确保容器自适应高度:

<mat-menu>
  <button mat-menu-item class="custom-multi-line-item">
    <div style="display: flex; flex-direction: column; align-items: flex-start; gap: 4px;">
      <span>Text1</span>
      <span style="font-size: 10px; color: gray;">Text2</span>
    </div>
  </button>
</mat-menu>

注意:优先使用自定义类而非直接修改全局.mat-mdc-menu-item样式,避免影响其他菜单组件的默认表现。

内容的提问来源于stack exchange,提问作者bfredo123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 21:52:09