2012-01-04 68 views
9

我注意到一个HTML标签标签不需要“的”属性,当你把你的输入元素插入标签元素:是HTML标签中必需的“for”属性吗?

<label><input type="text">Last name</label> 

但我想知道什么是最好的做法。有人可以帮助我吗?

谢谢!

+0

就像WebMonster说的那样,按照自己的方式行事很好。只需保持您的代码中的使用一致。 – Crontab 2012-01-04 12:26:07

+0

我今天注意到[Bootstrap的文档在同一个表单中使用](http://getbootstrap.com/css/#forms-inline)。似乎'for'属性只有在你不能或不把''放入'

回答

7

它用于辅助功能为屏幕阅读器等等,即

use_the_label_element_to_make_your_html_forms_accessible

所以,你应该使用它。这里有一个link来说服你关于可用性的重要性。

这里有一个小故事 - 让您的网站可以访问可以让所有用户受益 - 我总是很惊讶公民当局为轮椅可访问性付出的努力,直到我有一个女儿并使用推椅。我认为网站遵循相同的规则 - 每个人都受益。

道歉的论战

9

标准states

(IDReference)此属性明确地与表单控件的标签相关联。如果存在,则此属性的值必须与同一文档中表单控件的id属性的值相同。 缺席时,被定义的标签与标签元素内的控件相关联。所以可以这样使用它。

3

您可以在您的labelinput,它与label相关,或者出于某种原因,你要在DOM的其他地方有你label元素,你可以指定它的意思与for属性。从来没有使用for属性通过任何方式:)

2

for属性没有太大的差异与文本输入,但是与复选框输入非常有用,因为它允许用户点击标签作为还有复选框本身:

<label for="chk">Checkbox</label><input type="checkbox" id="chk" /> 

而且,你的HTML需要一点杂物车 - 输入标签需要被关闭,它不应该是在标签内:

<label>Last Name</label><input type="text" /> 

,或者你想要标签在右边:

<input type="text" /><label>Last Name</label>