2011-10-03 92 views
41

從演示角度來看,如果我在<label>標籤之間寫入文本,它看起來與我沒有的文本相同。爲什麼要用<label>?

那麼,爲什麼我們使用這一切的標籤?

+0

參見:http://stackoverflow.com/questions/2257606/making-複選框和單選標籤可點擊 – RedFilter

+22

HTML是**不**關於演示文稿。 – MrMisterMan

+18

我希望人們停止upvoting我的意見,並開始upvoting我的答案! ; P – MrMisterMan

回答

42

label元素的for屬性對應於input元素的id屬性。如果您單擊該標籤,則會將焦點放在輸入框上。

例子:

<input type="checkbox" id="agree" /> 
<label for="agree">I agree with the Terms and Conditions</label> 

See this in action.

如果你點擊文本,它會檢查框。

+2

請注意,這是爲了提高可訪問性,特別是對於屏幕閱讀器用戶。 – 2011-10-03 15:23:49

+1

偉大的插圖! –

3

當您單擊標籤上,重點轉到相關的輸入。非常方便的複選框,當它很難擊中小矩形。

1

HTML label tag

「label元素不會呈現如什麼特別的。然而,它提供了鼠標的用戶可用性的改善用戶,因爲如果在標籤元素中的文本的用戶點擊它。切換控制

的用於標籤的屬性應該等於將它們粘結在一起的相關元素的id屬性。」。

1

但從顯現點沒什麼。標籤標籤用於定義輸入元素的標籤。從語義角度來看,它不應該用於定義文本。

4

HTML <label>標記有一個特殊功能:它允許您提供for屬性,將標籤鏈接到輸入字段或其他控件,以便當用戶單擊標籤時,就好像他點擊了控制。

如:

<label for='mycontrol'>Label text</label> <input type='checkbox' name='mycontrol' id='mycontrol' value='1'> 

這意味着,當用戶點擊「標籤文本」,該複選框將被觸發。

這是可訪問性,通用性非常有用,也允許一些技巧,如做這看起來並不像一個複選框切換控制,但包含一個在幕後。

但是,除了這for功能,<label>元素基本上是任何其他HTML元素相同。

如果您不打算使用for屬性,則出於語義原因,使用<label>元素可能仍然正確。

77

HTML是關於介紹。這是一種描述數據的方式。如果您有一些文本代表輸入的標籤,則可以將其包裝在標籤標籤中,而不是用於展示,但因爲這就是它的原因。沒有標籤標籤,該文本幾乎沒有意義。通過標籤標籤及其for屬性(或不包含*),您可以提供含義和結構,並在您的標記之間形成一種關係,以便計算機/解析器/瀏覽器/人員更好地理解。

*您不一定需要for如果你環繞輸入標籤:

<label>My input 
 
    <input type="text" id="my-input" /> 
 
</label>