将<label>包裹在其他元素周围是否有问题?</label>

时间:2013-07-11 22:27:56

标签: html5 label

我想在表格中有三个单元格,当你点击它们时选择相应的复选框,所以我用标签标签包装它们。

<table>
  <tr>
    <td>
      <input id="input_id" type="checkbox">
    </td>
    <label for='input_id'>
      <td>stuff</td>
      <td>stuff</td>
      <td>stuff</td>
    </label>
  </tr>
</table>

不幸的是,这打破了点击功能。通常,当您单击标签中的文本时,它会切换检查,但这不适用于包装元素。有什么想法吗?它应该是,还是有某种原因这是一个坏主意?

有趣的是,如果我使用相同的'for'属性在单元格内容周围使用三个单独的标签,它确实有效....

1 个答案:

答案 0 :(得分:0)

根据您的示例编写无效标记是一个坏主意。应该包裹td的唯一元素是tr

就目前而言,您的示例不会破坏点击功能,因为解析器会丢弃td标记。

但是,如果示例位于table和tr元素中,则输入和标签元素将移动到表之前,因此不会包装td s或“stuff”文本(保留在表格内),因此单击该文本将无效。