如何将图标添加到 mat-icon-button
How to add icon to mat-icon-button
我正在使用 Angular 和 Material
<button mat-icon-button><mat-icon svgIcon="thumb-up"></mat-icon>Start Recording</button>
我正在尝试向按钮添加图标,但我不知道该怎么做,也找不到这方面的文档。
https://material.angular.io/components/button/api
查看文档,有这个:
该按钮具有以下 html:
<a _ngcontent-c1="" aria-label="Angular Material" class="docs-button mat-button" mat-button="" routerlink="/" tabindex="0" aria-disabled="false" href="/"><span class="mat-button-wrapper">
<img _ngcontent-c1="" alt="angular" class="docs-angular-logo" src="../../../assets/img/homepage/angular-white-transparent.svg">
<span _ngcontent-c1="">Material</span>
</span> <div class="mat-button-ripple mat-ripple" matripple=""></div><div class="mat-button-focus-overlay">
</div>
</a>
这是正确的做法吗?
您需要做的就是将 mat-icon-button 指令添加到模板中的按钮元素。在按钮元素中使用 mat-icon 组件指定您想要的图标。
您需要在应用程序模块文件中导入 MatButtonModule 和 MatIconModule。
在 Angular Material 按钮示例页面中,点击查看代码按钮,您将看到几个使用 material 图标字体的示例,例如
<button mat-icon-button>
<mat-icon aria-label="Example icon-button with a heart icon">favorite</mat-icon>
</button>
在你的情况下,使用
<mat-icon>thumb_up</mat-icon>
根据 https://material.angular.io/guide/getting-started 上的入门指南,您需要在 index.html.
中加载 material 图标字体
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
或将其导入到全局 styles.scss。
@import url("https://fonts.googleapis.com/icon?family=Material+Icons");
正如它提到的,任何图标字体都可以与 mat-icon 组件一起使用。
只需在 mat-button
或 mat-raised-button
中添加 <mat-icon>
。请参见下面的示例。请注意,出于演示目的,我使用 material 图标而不是您的 svg:
<button mat-button>
<mat-icon>mic</mat-icon>
Start Recording
</button>
或
<button mat-raised-button color="accent">
<mat-icon>mic</mat-icon>
Start Recording
</button>
这里是link到stackblitz demo。
添加到app.module.ts
import {MatIconModule} from '@angular/material/icon';
& link 在你的全局 index.html.
Material图标使用Material图标字体,该字体需要包含在页面中。
这是来自 Google Web Fonts 的 CDN:
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
我喜欢使用 inline
属性。这将使图标根据按钮的大小正确缩放。
<button mat-button>
<mat-icon inline=true>local_movies</mat-icon>
Movies
</button>
<!-- Link button -->
<a mat-flat-button color="accent" routerLink="/create"><mat-icon inline=true>add</mat-icon> Create</a>
我将此添加到我的 styles.css
中:
- 解决按钮内图标垂直对齐问题
- material 与按钮文本相比,图标字体总是有点太小
button.mat-button .mat-icon,
a.mat-button .mat-icon,
a.mat-raised-button .mat-icon,
a.mat-flat-button .mat-icon,
a.mat-stroked-button .mat-icon {
vertical-align: top;
font-size: 1.25em;
}
上面的CSS可以在SASS中写成如下(实际上包括所有按钮类型,而不仅仅是button.mat-按钮)
button,
a {
&.mat-button,
&.mat-raised-button,
&.mat-flat-button,
&.mat-stroked-button {
.mat-icon {
vertical-align: top;
font-size: 1.25em;
}
}
}
我正在使用 Angular 和 Material
<button mat-icon-button><mat-icon svgIcon="thumb-up"></mat-icon>Start Recording</button>
我正在尝试向按钮添加图标,但我不知道该怎么做,也找不到这方面的文档。
https://material.angular.io/components/button/api
查看文档,有这个:
该按钮具有以下 html:
<a _ngcontent-c1="" aria-label="Angular Material" class="docs-button mat-button" mat-button="" routerlink="/" tabindex="0" aria-disabled="false" href="/"><span class="mat-button-wrapper">
<img _ngcontent-c1="" alt="angular" class="docs-angular-logo" src="../../../assets/img/homepage/angular-white-transparent.svg">
<span _ngcontent-c1="">Material</span>
</span> <div class="mat-button-ripple mat-ripple" matripple=""></div><div class="mat-button-focus-overlay">
</div>
</a>
这是正确的做法吗?
您需要做的就是将 mat-icon-button 指令添加到模板中的按钮元素。在按钮元素中使用 mat-icon 组件指定您想要的图标。
您需要在应用程序模块文件中导入 MatButtonModule 和 MatIconModule。
在 Angular Material 按钮示例页面中,点击查看代码按钮,您将看到几个使用 material 图标字体的示例,例如
<button mat-icon-button>
<mat-icon aria-label="Example icon-button with a heart icon">favorite</mat-icon>
</button>
在你的情况下,使用
<mat-icon>thumb_up</mat-icon>
根据 https://material.angular.io/guide/getting-started 上的入门指南,您需要在 index.html.
中加载 material 图标字体<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
或将其导入到全局 styles.scss。
@import url("https://fonts.googleapis.com/icon?family=Material+Icons");
正如它提到的,任何图标字体都可以与 mat-icon 组件一起使用。
只需在 mat-button
或 mat-raised-button
中添加 <mat-icon>
。请参见下面的示例。请注意,出于演示目的,我使用 material 图标而不是您的 svg:
<button mat-button>
<mat-icon>mic</mat-icon>
Start Recording
</button>
或
<button mat-raised-button color="accent">
<mat-icon>mic</mat-icon>
Start Recording
</button>
这里是link到stackblitz demo。
添加到app.module.ts
import {MatIconModule} from '@angular/material/icon';
& link 在你的全局 index.html.
Material图标使用Material图标字体,该字体需要包含在页面中。
这是来自 Google Web Fonts 的 CDN:
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
我喜欢使用 inline
属性。这将使图标根据按钮的大小正确缩放。
<button mat-button>
<mat-icon inline=true>local_movies</mat-icon>
Movies
</button>
<!-- Link button -->
<a mat-flat-button color="accent" routerLink="/create"><mat-icon inline=true>add</mat-icon> Create</a>
我将此添加到我的 styles.css
中:
- 解决按钮内图标垂直对齐问题
- material 与按钮文本相比,图标字体总是有点太小
button.mat-button .mat-icon,
a.mat-button .mat-icon,
a.mat-raised-button .mat-icon,
a.mat-flat-button .mat-icon,
a.mat-stroked-button .mat-icon {
vertical-align: top;
font-size: 1.25em;
}
上面的CSS可以在SASS中写成如下(实际上包括所有按钮类型,而不仅仅是button.mat-按钮)
button,
a {
&.mat-button,
&.mat-raised-button,
&.mat-flat-button,
&.mat-stroked-button {
.mat-icon {
vertical-align: top;
font-size: 1.25em;
}
}
}