标签内使用复选框?

13

我在网上看到人们编写复选框的两种方式,哪一种是正确的?

  1. <input id="a" type="checkbox"/><label for="a">复选框</label>
  2. <label for="b"><input id="b" type="checkbox">复选框</label>

它们在Chrome浏览器中都可以正常工作,是否有一种比另一种更跨浏览器?它们之间有什么区别吗?

演示


4
这里有一个非常好的答案:https://dev59.com/GXRA5IYBdhLWcg3w8ikl应该把input标签放在label标签内部。 - Aram Kocharyan
1
两者都适用于所有主要浏览器,包括IE6和Opera。 - The Alpha
+1 给 @AramKocharyan 的链接,我刚刚在那里添加了一条评论。 - FelipeAls
2个回答

12
只要你使用for/id属性将inputlabel关联起来,即使input嵌套在

注意:如果未指定for属性,但label元素具有可标记的元素后代,则树顺序中的第一个这样的后代是label元素的标记控件。 (HTML living standard) - Gqqnbig

1

两种方式都是正确的。

标签可以包含内联元素(除了其他标签)。输入元素是内联元素。

在我看来,无论如何,我不会将复选框放在标签内,因为这对我来说似乎有点奇怪。标签的作用是标记输入字段,提供描述,而不是包含它们。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接