标签只能引用输入元素吗?

Mot*_*tti 13 html w3c label

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>
Run Code Online (Sandbox Code Playgroud)

Chrome和IE8都关注World何时Label点击,Firefox则没有.哪个是对的?

Ste*_*ins 9

根据W3C,它适用于表单控件,表单控件定义为:

  • 纽扣
  • 复选框
  • 单选按钮
  • 菜单
  • 文字输入
  • 文件选择
  • 隐藏的控件
  • 对象标签

所以FireFox在技术上是正确的,尽管如果浏览器没有将它限制在那些元素上,我几乎不会认为它"破坏".


Jac*_*son 5

HTML规范说,关于label's"for"属性,"当存在时,该属性的值必须与同一文档中某个其他控件的id属性的值相同.当不存在时,定义的标签是与元素的内容相关联."

因此"for"中的id引用应该是控件的id引用.什么是控制?该规范基本上说,任何input一个控制,因为是button,selectobject.所以Firefox在技术上是正确的 - 一个div不是控制.