Copy & Paste Engineer

【CSS】ボタンみたいなチェックボックスを作る

【CSS】ボタンみたいなチェックボックスを作る

今回はCSSを使用してボタンのようなチェックボックスを作ります。

サンプルコード

HTMLとCSSのを使用して実装します。

<label for="sample" class="chk_label">
  <input type="checkbox" id="sample" value="1" />チェック
</label>
.chk_label {
  display: inline-block;
  padding: 10px;
  background-color: #ddd; /* 未チェック時の背景色 */
  color: #333; /* 未チェック時のテキスト色 */
  cursor: pointer;
  margin: 3px;
  border-radius: 25px;
  font-size: 1rem;
  transition: background-color 0.3s ease; /* 背景色の変化をスムーズにする */
}

.chk_label input[type="checkbox"] {
  display: none; /* チェックボックスを隠す */
}

.chk_label:has(input[type="checkbox"]:checked) {
  background-color: #007BFF; /* チェックされた時の背景色 */
  color: #fff; /* チェックされた時のテキスト色 */
}

注意

今僕が使用している Firefox 114.0.2 では対応していない模様。

以下のサイトで使用できるか確認してみてください。 Can I Use :has()

今後対応する予定の模様です。 418039 – Implement the :has() pseudo class

Firefox で使用したい場合

Firefox は about:config ページより layout.css.has-selector.enabled の設定を true にすることで使用できるようになります。

サンプル

実際に実装したものは以下になります。

参考