2012-01-04 72 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>