ラジオボタン・チェックボタンの代わりに画像選択にする方法

目次
  1. HTMLとCSS
  2. ラジオボタン・チェックボタンを画像にする手順
  3. サンプルコード

HTMLとCSSで、フォームのラジオボタンやチェックボタンの代わりに画像選択にする方法の紹介です。

Before

After

HTMLとCSS#

<div>
<input id="image_a" type="radio" value="image_a.jpg" name="image">
<label for="image_a"><img src="/images/image_a.jpg" with="40" height="40"></label>
<input id="image_b" type="radio" value="image_b.jpg" name="image">
<label for="image_b"><img src="/images/image_b.jpg" with="40" height="40"></label>
<input id="image_c" type="radio" value="image_c.jpg" name="image">
<label for="image_c"><img src="/images/image_c.jpg" with="40" height="40"></label>
</div>
/* ラジオボタンの○を消す */
input[type="radio"] {
display: none;
}
/* 画像の周りに隙間をあける */
label img {
margin: 3px;
padding: 5px;
}
/* 未選択の場合、色を薄くする */
input[type="radio"] + label img {
opacity:0.2;
}
/* 選択済みの場合、色を濃くする */
input[type="radio"]:checked + label img {
opacity:1;
}

ラジオボタン・チェックボタンを画像にする手順#

①label+imgを足す#

<label for="image_a">
<img src="/images/image_a.jpg" with="40" height="40">
</label>

labelタグの中で画像を表示します。
labelタグのforはinputのidと揃えます。ここでは、inputのid=“image_a”とlabel for =“image_a”を揃えています。

②CSSでラジオボタン を非表示#

input[type="radio"] {
display: none;
}

③画像の選択/未選択で表示を変える#

input[type="radio"] + label img {
opacity:0.2;
}
input[type="radio"]:checked + label img {
opacity:1;
}

サンプルコード#

See the Pen ラジオボタンを画像で表示 by Emi (@filledforest) on CodePen.

えみ
えみ

作って、遊んで、世界を広げる