🦓 ラジオボックスのCSSデザイン
作成日: 2023/05/13
0

label要素の中にラジオボタンのinput要素を入れた場合のCSSデザイン

元のHTML

<label for="A" class="label"><input type="radio" name="btn" id="A">A</label>
<label for="B" class="label"><input type="radio" name="btn" id="B">B</label>
<label for="C" class="label"><input type="radio" name="btn" id="C">C</label>

初期状態ではデフォルトのボタンがそのまま実装されるので、ボタンを隠す必要がある。
display:noneではスクリーンリーダーで読み込めず使いづらくなるため、visually-hiddenを用いて非表示にしつつスクリーンリーダーを利用できるようにする。
そして、以下のサイトのvisually-hiddenクラスをinput要素に加える

参考:【サンプルコード紹介】チェックボックス/ラジオボタンをCSSで装飾する方法を解説。 KIOMIRU
https://kiomiru.co.jp/blog/coding/radio-checkbox/

次にこのようにCSSを加えて記述する

.label{
	position: relative;
    padding-left: 30px;//左側にボタンを表示するための余白を作る
    cursor: pointer;//カーソルをポインターにしてわかりやすくする
}

.label::before{ //ボタンの背景部分
	content:"";
	position:absolute;

	//適宜デザインに合うCSSを書く
	
}

.label:has(input:checked):after{//ラジオボタンの選択マーク
	content:"";
	position:absolute;

	//適宜デザインに合うCSSを書く

}

.label:has(input:checked)で選択されたラジオボタン(デフォルトでは青い丸がついているもの)を子に持つlabel要素を指定できる。
これのafter疑似要素を用いて選択時のマークを付ける。


自分の生き方を見つけるためにいろいろ挑戦中で今はweb制作を中心に勉強しています 経歴 : 大学に入学→2年生でブログを始めたが失敗→Web制作に挑戦