html5中


介紹的內容是html5中<label>標簽的for屬性使用方式方法詳細分析。

在freecodecamp上HTML教程的Create a Set of Radio Buttons這一節中,看到這樣一段話,

It is considered best practice to set a for attribute on the label element, with a value that matches the value of the id attribute of the input element. This allows assistive technologies to create a linked relationship between the label and the child input element.https:www.cqxftyyj.com

大概的意思是:最好的做法,是給label標簽,添加for屬性,其值與input標簽的id屬性的值相同,以在label和input之間創建關聯。

同時,給出一段示例代碼,如下:

<!-- Code 1 -->
<label for="indoor"> 
  <input id="indoor" type="radio" name="indoor-outdoor">Indoor 
</label>

代碼中,label的for屬性值與input的id屬性值相同。從這段代碼中,並不能看出關聯在何處。

關於label的for屬性的定義如下:

The for attribute specifies which form element a label is bound to.
譯文:for屬性指定label與表單中的哪個元素進行綁定。

示例代碼:

<!-- Code 2 -->
<form action="/action_page.php">
  <input type="radio" name="gender" id="male" value="male">
  <label for="male">Male</label>
  <br>
  <input type="radio" name="gender" id="female" value="female">
  <label for="female">Female</label>
  <br>
  <input type="radio" name="gender" id="other" value="other">
  <label for="other">Other</label>
  <br>
  <input type="submit" value="Submit">
</form>

 

對比兩段代碼,不難發現,

  1. label與input標簽的包含關系不同。Code 1 的label和input,屬於包含關系,Code 2 的label和input相對獨立。

  2. label與input在頁面上的排列方式不同。通過Chrome的開發者工具不難發現,Code 1 的運行結果,label標簽將input標簽遮蓋,Code 2 的運行結果,label標簽與input標簽並列。

  3. label與input一一對應。點擊label的內容,對應的單端按鈕都會被選中。

如果,我們將兩段代碼中label的for屬性刪除,則之前的第1點和第2點不變,變化的是第3點。Code 1 的運營結果,點擊label的內容,照舊能夠選中單選按鈕。而 Code 2 的則不同,點擊label的內容,無法選中單選按鈕。

經過簡單的代碼運行結果對比,我們能夠驗證文章開頭引用的那段話是正確的。為label添加for屬性的這個做法,能夠提高代碼質量。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM