switch
switch
开关选择组件,默认为行内元素。用于表示开/关两种状态,并允许用户在两种状态之间切换。switch 的功能和 checkbox 类似,但是交互效果和意图不同,即分别表达开关和复选。
<div>
<switch ::value="enabled" />
<span>switch state: {{ enabled ? 'on' : 'off' }}</span>
</div>
export default {
data: {
enabled: false
}
}
注
switch 组件的样式通常如示例中所示,但也可能因设备而异。尤其需要注意的是,不同设备上的 switch 宽度可能是有差异的,开发者应该预留合适的布局余量。
属性
value
表示 switch 的状态,值为 true 时,switch 处于开启状态,否则处于关闭状态。当不指定 value 属性时,switch 组件默认是关闭的。
checked
这是快应用兼容属性,通常更推荐使用 value
change
这是快应用兼容属性,通常更推荐使用 value
CSS 行为
switch 组件的整体风格由系统决定,不受开发者控制,正如 Fluent 2 和 Material 3 的风格差异那样。Glyphix 允许在 CSS 中定制 switch 的颜色,并且可以调整 switch 的大小。
CSS 属性
color
设置 switch 组件的滑块颜色,与一般的 CSS color 不同,switch 的 color 属性不支持继承,因此你必须将它定义在当前 switch 组件上。
<div>
red color: <switch class="red"/>,
not inherited: <switch/>
</div>
div {
color: red; /* 注意 switch 不会继承 color 属性 */
}
.red {
color: red; /* 必须在 switch 组件的样式上定义 color */
}
background-color
控制 switch 组件的背景颜色,详见 active 伪类的文档。
font-size
可以通过 font-size CSS 属性来调整 switch 的大小,使其行内(inline)的文字尺寸配合协调。下面的示例演示了 font-size 与 switch 大小的关系:
<div>
<p class="title">
title text: <switch/> (1.25rem)
</p>
<p>
content text: <switch/> (1rem)
</p>
</div>
div {
line-height: 1.8rem;
}
.title {
color: #415a77; /* 注意 switch 不会继承 color 属性 */
font-size: 1.25rem;
}
注意
switch 的显示大小并不受 width 和 height 等属性的控制,而是总是由 font-size 决定。因此请不要手动指定 width 等尺寸属性,以免显示异常。
CSS 伪类
active
active 伪类用于定义 switch 处于打开状态的样式。如下面的示例所示,它通常和常规样式规则一起配置:
<div>
color switch: <switch/>
</div>
/* switch 关闭状态下的样式 */
switch {
color: #415a77;
background-color: #bde0fe;
}
/* switch 打开状态下的样式 */
switch:active {
color: #fefae0;
background-color: #ffafcc;
}
本示例通过 color 和 background-color CSS 属性来控制 switch 切换时的颜色样式。switch 组件在 active 伪类激活的状态下也只会响应这两个 CSS 属性的配置。
提示
请同时定义普通状态和 active 状态下的 color 和 background-color 属性,否则 switch 切换时不会有相应的颜色转变。
