HTML 元素(标签)表示用户界面中某个元素的说明。
浏览器支持
示例
click me
标签定义及使用说明
- 标签为 input 元素定义标注(标记)。
- 元素不会向用户呈现任何特殊效果。不过,它为鼠标用户改进了可用性。如果您在元素内点击文本,就会触发此控件。就是说,当用户选择该标签时,浏览器就会自动将焦点转到和标签相关的表单控件上。
- for属性可把 label 绑定到另外一个元素。请把for属性的值设置为相关元素的id属性的值。
将一个和一个元素放在一起会有以下几点好处:
- 标签文本不仅与其相应的文本输入在视觉上相关联;它也以编程方式与它相关联。这意味着,当用户点击到表单输入时,屏幕阅读器可以读出标签,使在使用辅助技术的用户更容易理解应输入哪些数据.
- 你可以单击关联的标签来聚焦或者激活 input,以及 input 本身。这种增加的命中区域为激活 input 提供了方便,包括那些使用触摸屏设备的。
想要将一个和一个元素匹配在一起,你需要给一个id属性。而需要一个for属性,其值和 input 的id一样。
另外,你也可以将直接放在里,这种情况就不需要for和id属性了,因为这时关联是隐含的:

do you like peas?
其他使用事项:
- 标签标记的表单控件称为标签元素的标签控件。一个 input 可以与多个标签相关联。
- 标签本身并不与表单直接相关。它们只通过与它们相关联的控件间接地与表单相关联。
- 当点击或者触碰(tap)一个与表单控件相关联的时,关联的控件的click事件也会触发。
属性
该元素包含全局属性.
- for可标记的 form 相关元素的id,在同一文档中作为label元素。第一个这样的元素在文档中有一个ID匹配属性值,作为这个label元素的labeled control。注意:label元素可同时有属性和包含控件元素(contained control element),只要此属性指向包含控件元素。
- form表示label元素关联的form元素(它的表单拥有者)。此属性值必须是同一文档中元素的ID。如果未指定此属性值,元素必须是元素的后代。应用此属性值,你可以将label元素放置在文档的任何位置,而不仅仅是作为它的拥有者元素的后代。
属性值描述
| for | element_id | 规定 label 与哪个表单元素绑定。 |
| form HTML5新增 | form_id | 规定 label 字段所属的一个或多个表单。 |
Technical summary
Content categories| 流式内容元素,段落内容元素,交互内容元素,form-associated element,段落内容元素. |
Permitted content| 段落内容元素, but no descendantlabelelements. No labelable elements other than the labeled control are allowed. |
Tag omission| 不允许,开始标签和结束标签都不能省略。 |
Permitted parents| 可接受的任何元素段落内容元素. |
Permitted ARIA roles| None |
DOM接口| HTMLLabelElement |
HTML 4.01 与 HTML 5 之间的差异
"form"属性是 HTML5 的新属性。
全局属性
标签支持全局属性,查看完整属性表HTML全局属性。
事件属性
标签支持所有HTML事件属性。
实例
带有两个输入字段和相关标记的简单 HTML 表单:
malefemale
可访问性问题
相互影响的内容
不要在label元素内部放置会相互影响的元素,比如anchors,或者buttons。这样做会让用户更难激活/触发与label相关联的表单元素input
Don't
i agree to the terms and conditions
Do
i agree to the terms and conditions
read our terms and conditions
标题
在一个元素内部放置标题元素(heading elements)会干扰许多辅助技术,原因是标题通常被当成一个导航助手(a navigation aid)。若标签内的文本需要在视觉上做些调整,应该使用CSS伪类更改样式并应用到元素中。
若一个form元素,或者form元素中的一部分需要一个标题,此时应该使用元素做标题,并将它放在元素中。
Don't
your name
Do
your name
Buttons
元素若有着type="button"的宣告和有效的value属性,则不需要添加label.若添加了,则可能会干扰辅助技术如何解析button input.元素也同样。