button 概览
Angular Material 按钮就是原生的 <button>
或 <a>
元素,但使用 Material Design 的样式和墨水涟漪等效果进行了增强。
Angular Material buttons are native <button>
or <a>
elements enhanced with Material Design
styling and ink ripples.
原生的 <button>
和 <a>
元素经常用来为用户提供最直白、易用的交互体验。
当要执行某些动作时,应该使用 <button>
元素。
当用户要导航到其它视图时,应该使用 <a>
元素。
Native <button>
and <a>
elements are always used in order to provide the most straightforward
and accessible experience for users. A <button>
element should be used whenever some action
is performed. An <a>
element should be used whenever the user will navigate to another view.
按钮有多种变体,每种都用一个属性来定义:
There are several button variants, each applied as an attribute:
属性 Attribute |
说明 Description |
---|---|
mat-button |
方形文字按钮 / 无纵深(Z 轴位置) Rectangular text button w/ no elevation |
mat-raised-button |
方形填充按钮 / 有纵深 Rectangular contained button w/ elevation |
mat-flat-button |
方形填充按钮 / 无纵深 Rectangular contained button w/ no elevation |
mat-stroked-button |
方形外框按钮 / 无纵深 Rectangular outlined button w/ no elevation |
mat-icon-button |
圆形无背景按钮,通常就是个图标 Circular button with a transparent background, meant to contain an icon |
mat-fab |
圆形按钮 / 有纵深,默认使用主题中的 accent 颜色 Circular button w/ elevation, defaults to theme's accent color |
mat-mini-fab |
与 Same as |
主题
Theming
可以通过把 color
属性设置为 primary
、accent
或 warn
来把按钮的背景色设置当前主题中的颜色。
Buttons can be colored in terms of the current theme using the color
property to set the
background color to primary
, accent
, or warn
.
大写化
Capitalization
根据 Material Design 规范,按钮文本应该是大写的,不过我们选择不让它自动通过 text-transform: uppercase
进行大写化,因为这可能会在某些区域设置下导致问题。
值得注意的是,如果把文字本身写成全大写形式(而不是通过 css),可能会导致某些屏幕阅读器出现问题 —— 它将会一个字符一个字符的把文本读出来。
所以我们决定让应用开发者自己来决定用哪种形式。
According to the Material design spec button text has to be capitalized, however we have opted not
to capitalize buttons automatically via text-transform: uppercase
, because it can cause issues in
certain locales. It is also worth noting that using ALL CAPS in the text itself causes issues for
screen-readers, which will read the text character-by-character. We leave the decision of how to
approach this to the consuming app.
无障碍性
Accessibility
Angular Material 使用原生的 <button>
和 <a>
元素,来保留默认的无障碍性体验。
当要执行某些动作时,应该使用 <button>
元素。
当用户要导航到其它视图时,应该使用 <a>
元素。
Angular Material uses native <button>
and <a>
elements to ensure an accessible experience by
default. The <button>
element should be used for any interaction that performs an action on the
current page. The <a>
element should be used for any interaction that navigates to another
view.
对于那些只含图标的按钮或链接(比如 mat-fab
、mat-mini-fab
和 mat-icon-button
),应该通过 aria-label
或 aria-labelledby
给出一个有意义的标签。
Buttons or links containing only icons (such as mat-fab
, mat-mini-fab
, and mat-icon-button
)
should be given a meaningful label via aria-label
or aria-labelledby
.