【发布时间】:2013-10-26 05:30:03
【问题描述】:
我在很多框架、自动生成代码 (Zend) 和布局模板中都注意到了这种趋势。我说的方法是这样的:
<label for="someField">
<input id="someField" name="someName" />
</label>
这种方法与常规方法相比有哪些优缺点,为什么人们倾向于采用这种方法?
【问题讨论】:
标签: html forms dom label standards
我在很多框架、自动生成代码 (Zend) 和布局模板中都注意到了这种趋势。我说的方法是这样的:
<label for="someField">
<input id="someField" name="someName" />
</label>
这种方法与常规方法相比有哪些优缺点,为什么人们倾向于采用这种方法?
【问题讨论】:
标签: html forms dom label standards
从 HTML4.01 和 HTML5 中的 W3C standards 来看似乎很好:
HTML4:
"要将标签与另一个控件隐式关联,该控件 元素必须在 LABEL 元素的内容中。在这个 在这种情况下,LABEL 可能只包含一个控制元素。标签本身 可以位于关联控件之前或之后。"
在本例中,我们将标签与文本输入控件隐式关联:
<form action="..." method="post">
<p>
<label>
First Name
<input type="text" name="firstname">
</label>
</p>
</form>
从 HTML5 开始还可以:
"标签元素代表用户界面中的标题。 标题可以与特定的表单控件相关联,称为 label 元素的标签控件,可以使用 for 属性,也可以通过 将表单控件放在标签元素本身内。 - W3C.
【讨论】:
for,您还必须在表单字段中添加id
<input> 放入<label> 是一种好习惯吗?