點燈坊

失くすものさえない今が強くなるチャンスよ

HTML 之 Radio

Sam Xiao's Avatar 2020-12-13

Radio 必須點到 方框 才能選取,實務上會想要點擊 Label 也相當於選擇 Radio,可將 <input><label> 合作達成。

Version

HTML 5

Radio in Label

radio000

當 cursor 指向 label 時也會出現 pointer,表示點下 label 亦能點選 radio。

<template>
  <div class="radio">
    <label><input type="radio" name="habit">Swimming</label>
    <label><input type="radio" name="habit">Reading</label>
    <label><input type="radio" name="habit">Shopping</label>
  </div>
</template>

<style>
.radio label:hover, .radio input:hover {
  cursor: pointer;
}
</style>

第 2 行

<div class="radio">
  <label><input type="radio" name="habit">Swimming</label>
  <label><input type="radio" name="habit">Reading</label>
  <label><input type="radio" name="habit">Shopping</label>
</div>
  • <input> 包在 <label> 內,如此當點下 <label> 時相當於選擇 radio
  • 將三個 <label> 統一放在 <div> 下設定 CSS

10 行

.radio label:hover, .radio input:hover {
  cursor: pointer;
}
  • 雖然 <label> 可點選,但 user 並不知道,因此在 label:hover 加上 cursor: pointer 顯示 cursor 提醒
  • 希望 <input> 也能如 label 有 cursor,因此在 input:hover 加上 cursor: pointer 顯示 cursor 提醒
  • label:hoverinput:hover 都放在 .radio 一起設定

Conclusion

  • 實務上 radio 都會搭配 <label> 一起使用,可再搭配 hover 加上 pointer

Reference

MDN, Radio