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

如何用Angular Material创建带图标文字的按钮?解决左内边距对齐问题

解决Angular Material按钮左内边距对齐问题

Angular Material的mat-flat-button内部默认包含一个.mat-button-wrapper容器,这个容器自带默认的左右内边距,这就是导致你按钮里的图标和文字左侧出现空隙的原因——你当前的样式只覆盖了按钮本身的padding,没处理内部这个容器的样式。

把你的CSS修改成下面这样就能解决:

.mat-flat-button {
  line-height: 28px !important;
  padding: 0 12px !important;
  font-weight: 400 !important;
}

/* 移除内部容器的左内边距,让图标贴近按钮左侧 */
.mat-flat-button .mat-button-wrapper {
  padding-left: 0 !important;
}

/* 可选:给图标和文字添加合适间距,让布局更协调 */
.mat-flat-button mat-icon {
  margin-right: 8px;
}

HTML保持你原来的结构即可:

<button mat-flat-button color="primary">
  <mat-icon color="white">add</mat-icon>
  Create
</button>

如果不想依赖!important来强制覆盖样式,也可以在组件的样式文件中使用:host ::ng-deep提升选择器优先级(注意组件需允许样式穿透):

:host ::ng-deep .mat-flat-button {
  line-height: 28px;
  padding: 0 12px;
  font-weight: 400;
}

:host ::ng-deep .mat-flat-button .mat-button-wrapper {
  padding-left: 0;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 09:33:21