ラジオボタンがチェックされたらチェックされていないボタンの中の背景色を赤(#ff0000)から白(#fff)に変えたいのですが、上手くいきません。
javascript、もしくは、jQueryでラベルの色を変えるのだと思うのですが、よく分かりません。
ラジオボタンはdisplay: none;でスタイルをリセットしたうえで変更しています。
りんご ボタン(背景赤)
オレンジ ボタン(背景赤)
↓↓
りんごをチェックすると・・
↓↓
りんご ボタン(背景白、チェックマーク青)
オレンジ ボタン(背景白)
りんご ボタン(背景赤)
オレンジ ボタン(背景赤)
↓↓
オレンジをチェックすると・・
↓↓
りんご ボタン(背景白)
オレンジ ボタン(背景白、チェックマーク青)
動かないjavascript、もしくは、jQuery 以下の場合、ボタンの中ではなく、ボタンの外の背景色が変わってしまう。 <script> function funappletest() { $("#fruit").css("background-color","#FFF"); } function funorangetest() { $("#fruit").css("background-color","#FFF"); } </script>
<HTML> <dl id="fruit"> <dt>りんご</dt> <dd><input id="apple" name= "fruit" type="radio" onclick="funappletest()" value="apple"/> <label for="apple">りんご</label> <input id="orange" name= "fruit" type="radio" onclick="funorangetest()" value="orange" /> <label for="orange">オレンジ</label> </dd> </dl> </HTML>
<style type="text/css"> input[type="radio"] { display: none; } label { position: relative; display: inline-block; padding: 3px 3px 3px 20px; cursor: pointer; } label::before, label::after { position: absolute; content: ''; top: 50%; border-radius: 100%; } label::before { left: 0; width: 10px; height: 10px; margin-top: -8px; background: #ff0000; } label:hover::before { background: #ff0000; } label::after { opacity: 0; left: 4px; width: 6px; height: 6px; margin-top: -4px; background: #00ffff; } input[type="radio"]:checked + label::before { background: #fff; } input[type="radio"]:checked + label::after { opacity: 1; -webkit-transform: scale(1); transform: scale(1); } </style>
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/17 12:12
2019/04/17 12:34
2019/04/17 12:56
2019/04/17 13:00
2019/04/17 13:32