button-toggle 概览
<mat-button-toggle>
是一个具有按钮外观的双态开关。
这些开关的行为可以配置得像单选按钮或检查框一样。虽然它们也可以独立使用,但一般会作为 mat-button-toggle-group
中的一部分。
<mat-button-toggle>
are on/off toggles with the appearance of a button. These toggles can be
configured to behave as either radio-buttons or checkboxes. While they can be standalone, they are
typically part of a mat-button-toggle-group
.
单选与多选
Exclusive selection vs. multiple selection
默认情况下,mat-button-toggle-group
的表现很像单选按钮组 —— 只能选中一个元素。
在这种模式下,mat-button-toggle-group
的 value
表示当前选中的按钮,还支持 ngModel
。
By default, mat-button-toggle-group
acts like a radio-button group- only one item can be selected.
In this mode, the value
of the mat-button-toggle-group
will reflect the value of the selected
button and ngModel
is supported.
添加 multiple
属性将会允许同时选中多个条目(就像检查框那样)。
在这种模式下,这些开关的值是没用的,mat-button-toggle-group
没有值,不支持 ngModel
。
Adding the multiple
attribute allows multiple items to be selected (checkbox behavior). In this
mode the values of the toggles are not used, the mat-button-toggle-group
does not have a value,
and ngModel
is not supported.
外观
Appearance
默认情况下,mat-button-toggle-group
和 mat-button-toggle
的外观将遵循最新的 Material 设计准则。如果需要,也可以使用输入属性 appearance
切换回上一版 Material Design 规范的外观。可以使用 MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS
注入令牌来全局配置 appearance
。
By default, the appearance of mat-button-toggle-group
and mat-button-toggle
will follow the
latest Material Design guidelines. If you want to, you can switch back to the appearance that was
following the previous Material Design spec by using the appearance
input. The appearance
can
be configured globally using the MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS
injection token.
Default appearance:
Legacy appearance:
Use with @angular/forms
<mat-button-toggle-group>
is compatible with @angular/forms
and supports both FormsModule
and ReactiveFormsModule
.
无障碍性
Accessibility
这些按钮开关内部会使用带有 aria-pressed
的原生 button
元素来表达其切换状态。按钮开关组(button-toggle-group)会把带有 role="group"
的这些独立按钮都包裹起来,以表达这些独立开关之间的联系。
The button-toggles internally use native button
elements with aria-pressed
to convey
their toggled state. The button-toggle-group surrounding the individual buttons applies
role="group"
to convey the association between the individual toggles.
对于只包含图标的按钮开关,每个按钮开关都应该通过 aria-label
或 aria-labelledby
给出一个有意义的标签。
For button toggles containing only icons, each button toggle should be given a meaningful label via
aria-label
or aria-labelledby
.
对于按钮开关组,每个组都要通过 aria-label
或 aria-labelledby
给出一个有意义的标签。
For button toggle groups, each group should be given a meaningful label via aria-label
or
aria-labelledby
.
方向
Orientation
通过添加 vertical
属性,按钮开关组可以沿垂直方向渲染。
The button-toggles can be rendered in a vertical orientation by adding the vertical
attribute.