跳到主要内容
界面图谱Interface Atlas
☰
EN
组件Form / Input

标签输入

Tag Input

别名:标签输入标签框打标签的输入框chips 输入token inputtag box

这是什么

在文本框里回车或输入分隔符,就把当前内容固化成一枚可删除的标签(chip),标签在框内横向排列, 输入光标始终停在末尾。兼顾「自由输入」与「逐项管理」,常用于收件人、话题标签、文件名与 过滤条件。Backspace 删最后一枚,点 × 删指定项。

交互实验室

试一试,再决定怎么用

输入几个词按回车成标签,用 Backspace 删最后一枚,再点 × 删指定项。

正在加载实验室…

使用时关注什么

  • 01每枚标签都有可达的移除入口
  • 02输入与标签在同一容器内,光标始终可继续输入

✓ 适用场景

  • 多值输入且每项可单独删除(收件人、标签、过滤词)
  • 选项集合开放,允许用户创造新值
  • 需要在输入过程中一眼看清「已经选了什么」

✕ 不适用场景

  • 选项固定且数量少(用 select 或 radio)
  • 只需要一个短文本(用普通 input)
  • 需要对选项排序或分组(用 multi-select 或 transfer)

常见形式

自由输入

Free-form tags

回车即成标签,不校验词表

自动补全

Autocomplete tokens

边输入边从候选中补全,仍可自创新值

文件名标签

File-name chips

展示已选文件名,仅可移除不可编辑

实现要点

flexflex-wrapgapborder-radius: 9999px

容器是一块「看起来像输入框」的 flex-wrap 区,标签用圆角胶囊排在前面,真实 input 撑开 剩余宽度。回车 / 逗号 / 失焦时提交去重后的值;Backspace 在输入为空时删除最后一枚。 删除按钮用 button 而非纯图标 span,移除后 aria-live 播报「已移除 xx」。自动补全变体 在容器下方绝对定位候选列表,键控上下键移动高亮。

平台 API

<input>role="listbox"aria-livekeydown

代码里叫什么

同一控件在不同体系里的叫号——用对名字,Prompt 和检索才准。

相关概念

输入框Input

用一条带边框的水平输入区收集单行文本,是表单的基本单元。 占位符提示期望格式,聚焦时高亮边框引导视线,校验失败时切换错误色 并附提示文案;可内嵌前后缀图标与清除按钮,受控管理输入值。

组件相似概念
可搜索选择框Combobox

把文本输入和候选选项组合在一起的选择组件。用户可以输入关键词缩小范围,再通过鼠标或键盘确定一个值。输入文本、当前高亮项和最终选中值是不同状态;当没有匹配项时,应解释结果并允许清空重选。它适合选项较多、用户又可能记得部分名称的场景。

组件相似概念
徽标Badge

附着在元素角落或行内的小型状态标记:圆点、数字计数或短文字标签。用于表达未读数量、 状态(新、已废弃)或分类;不参与交互,视觉上从属于宿主元素。

组件搭配使用
多选框组Multi-select

允许从一组选项中挑选多个值,并以标签形式回显已选集合的选择控件。与单选下拉不同,展开面板在选择后保持打开,已选项可逐个移除;适合标签、权限、筛选条件等需要累积多个值的表单场景。选项很多时应配合搜索。

组件搭配使用

可搭配的风格

参考来源

Markdown 版(给 Agent) · JSON