跳至正文

Segmented control

供用户选择唯一选项的一排分段按钮。

浏览器
Chrome 123+Firefox 121+Safari 17.5+
层级
0
压缩后大小
995 B
强制布局预算
0 ms
axe 预算
0
支持 SSR
是
基于
elements/choice
公开契约
测试环境

交互示例

Segmented Control

默认

API

SegmentedControl

属性类型默认值说明
id*string—确定性id和共享单选框组名称的基础值。
items*readonly SegmentedControlItem[]—每项为{ value, label, disabled? }。
defaultValuestring | undefined—首次渲染时选中的项。非受控,因此无JavaScript时仍可保持。
valuestring—SegmentedControlClient的受控值。
onValueChange(value: string) => void—SegmentedControlClient的变更回调。
disabledbooleanfalse禁用所有分段,并为组添加data-disabled。
aria-label / aria-labelledbystring—radiogroup的无障碍名称;没有可见组标签时应提供。
orientation"horizontal" | "vertical""horizontal"分段的排列方向。
fullWidthbooleanfalse在根元素上设置data-full-width,使分段伸展并填满容器。
classNamestring—应用于组根元素的类名。

键盘

按键操作
Tab将焦点移入组
Arrow keys在分段之间移动焦点
Space选择已聚焦的分段

无障碍

基于隐藏radio输入框的原生单选radiogroup。受控value/onValueChange行为请使用SegmentedControlClient。

样式钩子

data-partdata-disableddata-full-width