跳至正文

Select

对原生select元素的封装。

浏览器
Chrome 135+Firefox 121+
为什么是此版本?

Firefox keeps the native select control. This custom styling uses ::picker(select), :open, and option::checkmark, which Firefox does not support yet.

Safari 17+
为什么是此版本?

Safari keeps the native select control. This custom styling uses ::picker(select), :open, and option::checkmark, which Safari does not support yet.

层级
0
压缩后大小
480 B
强制布局预算
0 ms
axe 预算
0
支持 SSR
是
公开契约
测试环境

交互示例

Select

默认

分组

宠物

带分隔线

长值

API

Select.Root

属性类型默认值说明
childrenReactNode—Select组成部分,通常为包含项目和分组的Select.Content。
valuestring—选中的值,使选择框受控。
defaultValuestring—首次渲染时选中的值;此后由原生select管理选择,因此无须JavaScript也能工作。
onValueChange(value: string) => void—选择变化时,使用新值调用。
namestring—随所选值提交的表单字段名。
disabledbooleanfalse禁用原生select,并设置data-disabled属性。
renderReactElement | ((props, state) => ReactElement)—替换渲染元素,同时保留行为和无障碍连接关系。

Select.Content

属性类型默认值说明
childrenReactNode—项目、分组和分隔线;该组成部分直接渲染children,不添加元素。

Select.Item

属性类型默认值说明
childrenReactNode—此选项显示的文本。
disabledbooleanfalse使此选项不可选择。
value*string—选中此选项时提交的值。
renderReactElement | ((props, state) => ReactElement)—替换渲染元素,同时保留行为和无障碍连接关系。

Select.Group

属性类型默认值说明
childrenReactNode—属于此分组的项目。
label*string—原生选项组显示的分组标题。
renderReactElement | ((props, state) => ReactElement)—替换渲染元素,同时保留行为和无障碍连接关系。

Select.Separator

属性类型默认值说明
renderReactElement | ((props, state) => ReactElement)—替换渲染元素,同时保留行为和无障碍连接关系。

键盘

按键操作
Arrow keys获得焦点时更改选项
Space打开原生选择器(由平台提供)

无障碍

仅支持文本的原生<select>;浏览器管理选择、键盘输入、键入跳转和表单提交。支持的引擎仅增强选择器外观。

样式钩子

data-disabled
本页由机器翻译,尚未经人工审核。