CSS

チェックボックス/ラジオボタンをCSSでデザインする方法

この記事では、独自デザインのカスタム要素を作成する方法、FontAwesomeを活用したアイコン付き要素の実装方法、そしてスタイリッシュなオーバーレイ表示を利用する方法の3つを紹介します。

独自デザインのカスタムチェックボックスとラジオボタンの作成

CSSのみを使用して、独自のデザインを持つカスタムチェックボックスとラジオボタンを作成する方法を紹介します。

作成例

See the Pen
チェックボックス/ラジオボタン-独自デザイン
by りん@エンジニア (@rinblog0408)
on CodePen.

HTML

<input type="checkbox" id="customCheckbox">
<label for="customCheckbox">カスタムチェックボックス</label>

<input type="radio" id="customRadio" name="radioGroup">
<label for="customRadio">カスタムラジオボタン</label>

 

CSS

/* カスタムチェックボックス */
input[type="checkbox"] {
  /* デフォルトのチェックボックスを非表示に */
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  /* カスタムチェックボックスのサイズとスタイルを指定 */
  width: 20px;
  height: 20px;
  border: 2px solid #999;
  border-radius: 4px;
  /* 未チェックの時の背景色 */
  background-color: white;
  /* チェックマークの表示位置を中央に */
  display: inline-block;
  vertical-align: middle;
  /* チェックされた時のスタイル */
}
input[type="checkbox"]:checked {
  background-color: #66bb6a; /* チェックされた時の背景色 */
  border: 2px solid #66bb6a; /* チェックされた時の枠線の色 */
}

/* カスタムラジオボタン */
input[type="radio"] {
  /* デフォルトのラジオボタンを非表示に */
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  /* カスタムラジオボタンのサイズとスタイルを指定 */
  width: 20px;
  height: 20px;
  border: 2px solid #999;
  border-radius: 50%;
  /* 未選択の時の背景色 */
  background-color: white;
  /* ラジオボタンの表示位置を中央に */
  display: inline-block;
  vertical-align: middle;
  /* チェックされた時のスタイル */
}
input[type="radio"]:checked {
  background-color: #42a5f5; /* チェックされた時の背景色 */
  border: 2px solid #42a5f5; /* チェックされた時の枠線の色 */
}

 

FontAwesomeを使用したアイコン付きチェックボックスとラジオボタン

FontAwesomeアイコンを活用して、チェックボックスとラジオボタンにアイコンを付ける方法を紹介します。

FontAwesomeのアイコンは多様で使い勝手がよく、視覚的にわかりやすいUIを作りたい場合に便利です。

作成例

See the Pen
チェックボックス/ラジオボタン-Fontawesome
by りん@エンジニア (@rinblog0408)
on CodePen.

HTML

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">

<input type="checkbox" id="iconCheckbox">
<label for="iconCheckbox"><i class="fa fa-check-square"></i> アイコン付きチェックボックス</label>

<input type="radio" id="iconRadio" name="radioGroup">
<label for="iconRadio"><i class="fa fa-dot-circle-o"></i> アイコン付きラジオボタン</label>

 

CSS

/* アイコン付きチェックボックス */
input[type="checkbox"] + label i.fa {
  margin-right: 5px;
}

/* アイコン付きラジオボタン */
input[type="radio"] + label i.fa {
  margin-right: 5px;
}

 

CSSライブラリを活用したスタイリッシュなオーバーレイ

CSSライブラリを使って、クリック時にオーバーレイ表示されるスタイリッシュなチェックボックスとラジオボタンを実装する方法を紹介します。

作成例

See the Pen
チェックボックス/ラジオボタン-オーバーレイ
by りん@エンジニア (@rinblog0408)
on CodePen.

HTML

<div class="overlayCheckbox">
  <input type="checkbox" id="overlayCheckbox">
  <label for="overlayCheckbox">オーバーレイ表示されるチェックボックス</label>
</div>

<div class="overlayRadio">
  <input type="radio" id="overlayRadio" name="radioGroup">
  <label for="overlayRadio">オーバーレイ表示されるラジオボタン</label>
</div>

 

CSS

/* オーバーレイ表示されるチェックボックス */
.overlayCheckbox input[type="checkbox"] {
  /* デフォルトのチェックボックスを非表示に */
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  /* カスタムチェックボックスのサイズとスタイルを指定 */
  width: 20px;
  height: 20px;
  /* 未チェックの時の背景色 */
  background-color: white;
  /* チェックマークの表示位置を中央に */
  display: inline-block;
  vertical-align: middle;
  /* チェックされた時のスタイル */
}
.overlayCheckbox input[type="checkbox"]:checked {
  position: absolute;
  z-index: -1;
}

/* オーバーレイ表示されるラジオボタン */
.overlayRadio input[type="radio"] {
  /* デフォルトのラジオボタンを非表示に */
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  /* カスタムラジオボタンのサイズとスタイルを指定 */
  width: 20px;
  height: 20px;
  /* 未選択の時の背景色 */
  background-color: white;
  /* ラジオボタンの表示位置を中央に */
  display: inline-block;
  vertical-align: middle;
  /* チェックされた時のスタイル */
}
.overlayRadio input[type="radio"]:checked {
  position: absolute;
  z-index: -1;
}

 

まとめ

この記事では、独自デザインのカスタム要素を作成する方法、FontAwesomeを活用したアイコン付き要素の実装方法、そしてスタイリッシュなオーバーレイ表示を利用する方法の3つを紹介しました。

▼HTML/CSS/JavaScriptの学習本を探してる方はこちらの記事をどうぞ

2023年版 Webコーディングにオススメの学習本【HTML/CSS/JavaScript】この記事では、初心者から中級者以上まで、Webコーディングの学習にオススメの学習本をご紹介します。この記事で紹介する本は、分かりやすい解説や実践的な例題、デザインや解説図など、学習をサポートするいろんな要素が含まれている本を選びました。ぜひ、自分に合った本を見つけて、ウェブ制作のスキルを磨いてみてください。...

 

ABOUT ME
りん
QA 1年 / Webデザイナー 2年 / SE 2年 / フリーランスSE 1年 / SE人事・開発PM 半年 / 沖縄から福岡に移住3年目 / 趣味や好きなことをブログにまとめてます