See the Pen ExgaPqj by 熊瀬川直也 (@momonoki1990) on CodePen.
- デフォルトのラジオボタン(
input[type="radio"]
)は`display: none
で消す - ラベルと消したラジオボタンの
input
はfor
属性で繋がっているので、ラベルだけ残しても大丈夫(ラベルをクリックしてもラジオボタンがクリックされたことになる) - ラジオボタンのラベル(
label.radioLabel
)はpadding-left
で右に寄せて、スペースを空けておく - ラジオボタンのラベル(
label.radioLabel
)に:before
を指定して、上記で空いたスペースにカスタムのラジオボタンを挿入する -
input[type="radio"]:checked + .radioLabel:after
でチェックされたラジオボタンの直後にあるラジオボタンのラベルに、:after
を指定して、チェックされたマークを挿入する。 - ラジオボタンのラベル(
label.radioLabel
)にposition: relateve
を、カスタムのラジオボタンやチェックされたマークにはposition:absolute
を指定して、ラベルに対する相対位置でカスタムのラジオボタンやチェックされたマークの位置を定める。 - チェックされたラジオボタンの値は、
getElementByIdで取得したform要素.ラジオボタンのname.value
で取得できる -
innerHTML
はメソッドではない(x 要素.innerHTML() o 要素.innerHTML = "")
参考
CSSでラジオボタン・チェックボックスをデザイン装飾する
https://web.runland.co.jp/blog_cate2/post-2650
ラジオボタンの値を取得する方法
https://lab.syncer.jp/Web/JavaScript/Snippet/30/