まりぞーです(∩°ω°∩)
鳥さんのおしりに夢中です。

CSSのみでチェックボックスやラジオボタンを装飾したい衝動に駆られたのでご紹介します。
Chrome、Firefox、IE9+ で確認済みです。

基本的には、チェックボックス或いはラジオボタンの実体であるinput要素とspan要素を並べてlabel要素で囲み、checkedの状態かそうでないかでCSSを切り替えます。
実際の見た目に反映するのはlabel要素の中のspan要素や疑似要素になります。

デモはこちら

目次

共通のCSS

appearance: none;などでinput要素のデフォルトの装飾等を除去します。

チェックボックスの装飾

チェックボックスの装飾

チェックボックスの実体であるinput要素の次にspan要素など見た目に反映させる要素を配置します。
これらをlabel要素で囲みます。

HTML

CSS

ラジオボタンの装飾

ラジオボタンの装飾

ラジオボタンもチェックボックスと同様に、input要素の次にspan要素など見た目に反映させる要素を配置し、これらをlabel要素で囲みます。

HTML

CSS

まとめ

いかがでしょか!
CSSのみで装飾すると、色の変更やサイズ、形の変更なども(だいぶシンプルなものであれば)できてしまうので、とっても便利です。
またCSSネタをゲットできたらご紹介しますです。

あわせて読みたい記事