??<label>慢跑
??<input?type="checkbox"?name="jog"?id="1"?/></label>
??<br>
??<label>登山
??<input?type="checkbox"?name="climb"?id="2"?/></label>
??<br>
??<label>籃球
??<input?type="checkbox"?name="basketball"?id="3"?/></label>??<label>慢跑
??<input?type="checkbox"?name="jog"?id="1"?/><br>
??登山
??<input?type="checkbox"?name="climb"?id="2"?/><br>
??籃球
??<input?type="checkbox"?name="basketball"?id="3"?/>
??</label>對比上面的兩段代碼,為什么不可以用一個label標簽將三個input標簽全部包裹用三個label標簽分別包裹三個input標簽卻可以?
6 回答
已采納

霸氣的擎宇
TA貢獻6條經驗 獲得超5個贊
其實你不用label也是可以的,你要搞清楚為什么用label呢?
或者這樣說,你最先要清楚的應該是label標簽的作用是什么!
你也知道是獲得焦點,但愿你懂究竟什么焦點。就是這個選項本來必須點那個圈才能選中,現在是直接點在這個選項所在的位置,比如文字都可以直接選中這個標簽。
那很明顯的就是,label讓“必須是這個input所在的位置”的任意地方被點擊都可以凝聚一個焦點區選中它。
如果多個input 公用一個LABEL ?獲得焦點之后凝聚在誰身上?總不能全部選中吧?所以規范就是,只能凝聚一個焦點。那么你先用當然就必須每個單獨使用了
你的提問其實很有創意,但是可惜的是,規范并沒有如你所想的規定符合你想法的標簽。而是規定了一個一對一使用的label。你可以聯想一下ul ? li ?為什么li必須一個對應一個而不能一個li包裹所有。label 亦是如此!

業余奶茶品鑒師
TA貢獻260條經驗 獲得超388個贊
label標簽包裹input標簽,是為了在點擊label標簽時,里面包裹的input標簽可以獲得焦點,是一一對應的。所以三個input標簽要分別用三個label標簽來包裹。
- 6 回答
- 0 關注
- 2620 瀏覽
相關問題推薦
添加回答
舉報
0/150
提交
取消