我在很多框架、自动生成代码 (Zend) 和布局模板中都注意到了这种趋势。我正在谈论的方法是这样的:
<label for="someField">
<input id="someField" name="someName" />
</label>
这种方法与常规方法相比有什么优缺点,为什么人们倾向于采用这种方法?
从 HTML4.01 和 HTML5的W3C 标准来看,这似乎很好:
HTML4:
“要将标签与另一个控件隐式关联,控件元素必须在 LABEL 元素的内容内。在这种情况下,LABEL 可能只包含一个控件元素。标签本身可能位于关联控件之前或之后。”
在此示例中,我们将标签与文本输入控件隐式关联:
<form action="..." method="post">
<p>
<label>
First Name
<input type="text" name="firstname">
</label>
</p>
</form>
从HTML5开始仍然可以:
“标签元素表示用户界面中的标题。标题可以与特定的表单控件相关联,称为标签元素的标签控件,可以使用 for 属性,也可以将表单控件放在标签元素本身内。- W3C。