だから私はこれが何度も答えられていることを知っていますが、私はすでに提供されているものよりもはるかにエレガントなソリューションを持っていると感じています. そして、1 つのエレガントなソリューションだけでなく、あなたの空想をくすぐる 2 つの個別のソリューションもあります。そうは言っても、知って見なければならないことはすべて、コメント付きの 2 つの JS Fiddle に含まれています。
解決策 #1 は、特定のブラウザーのネイティブの「チェックボックス」に依存していますが、ひねりを加えています...クロスブラウザーを配置しやすい div に含まれています。 (これはFFの醜い境界線が見えないようにするためです)
シンプルな HTML: (リンクをたどって、コメント付きの CSS を確認します。コード ブロックは、stackoverflow を満たすためのものです) http://jsfiddle.net/KQghJ/
<label><div class="checkbox"><input type="checkbox" /></div> Label text</label>
解決策 2 では、「Checkbox Toggle Hack」を使用して DIV の CSS 状態を切り替えます。これはブラウザ全体で適切に配置されており、チェックボックスのチェックされていない状態とチェックされている状態の単純なスプライトを使用して設定します。必要なのは、前述の Checkbox Toggle Hack を使用して背景位置を調整することだけです。私の意見では、これはチェックボックスとラジオをより細かく制御できるため、より洗練されたソリューションであり、ブラウザー間で同じように見えることを保証できます。
シンプルな HTML: (リンクをたどってコメント付きの CSS を確認します。コード ブロックは StackOverflow を満たすためのものです) http://jsfiddle.net/Sx5M2/
<label><input type="checkbox" /><div class="checkbox"></div>Label text</label>
誰かがこれらの方法に同意しない場合は、コメントを残してください。なぜ他の人がこれらの解決策に出くわしていないのか、または彼らがいる場合、なぜここに答えがないのかについてのフィードバックを聞きたいです? これらの方法のいずれかが失敗するのを見た人がいれば、それも見てみたいと思いますが、これらは最新のブラウザーでテストされており、私が見た限りではかなり古く、普遍的な HTML / CSS メソッドに依存しています。