题
W3Schools有这样说 标签:
的
<label>
标签的定义的标签一个 输入 元素。 [着重部分由作者标明地雷]
这是否意味着以下HTML是无效的?
<!doctype html>
<html>
<head>
<title>Example document</title>
</head>
<body>
<label for="x">Label</label>
<hr>
<div id="q" contentEditable="true">Hello</div>
<hr>
<div id="x" contentEditable="true">World</div>
</body>
</html>
两铬和IE8得到重点 World
时 Label
点击,火狐不。这是正确的?
其他提示
在HTML规范说,约label
的“对”的属性,“当存在时,该属性的值必须是相同的同一文档中的一些其他控制的id属性的值,当不存在时,标签被定义与所述元素的内容相关联的“。
所以在ID的引用“为”应该是一个控制的。什么是控制?该规范基本上说,任何input
是控制,是button
,select
,或object
。所以Firefox是技术上右 - 一个div
不是控制
我会说这是不恰当的使用的标记的,因为标签的语义是它们是专为对照。
在LABEL元件用于指定 标签不具有控制 隐式标签,
最新一份规范已经这样说的:
一些元素,不是所有形式相关的,被归类为labelable要素。这些元素可以与标签元素。
button
,input
(如果的type
属性是不是在隐藏的状态),meter
,output
,progress
,select
,textarea
...
的
for
属性可以指定,以指示的形式控制带有其标题是相关联。如果属性是指定的,属性是值必须ID labelable件在同一棵树的label
元素。
(资料来源: https://html.spec.whatwg.org/multipage/forms.html.)
换句话说,该标准仅允许 for
属性的要点,在要件7个标记种类列出上述。HTML展出的问题(即采用一个 for
元点对可编辑 div
)是因技术上无效HTML根据目前的规格。
的 Nu Html检查 (这是 核可过份)同意;如果你问到验证HTML文档从的问题,它说:
错误:值
for
属性的label
元素必须ID的一个非隐形式的控制。