Ich weiß, dass diese Frage schon oft beantwortet wurde, aber ich habe das Gefühl, dass ich eine viel elegantere Lösung habe als die, die bereits angeboten wurde. Und nicht nur 1 elegante Lösung, sondern 2 separate Lösungen, um Ihre Fantasie zu kitzeln. Mit dieser sagte, alles, was Sie wissen und sehen müssen, sind in 2 JS Fiddle, mit Kommentaren enthalten.
Lösung Nr. 1 beruht auf der systemeigenen "Checkbox" des jeweiligen Browsers, allerdings mit einer Besonderheit... Seine in einem div enthalten, die leichter zu positionieren Cross-Browser ist, mit einem Overflow: versteckt, um den Überschuss eines 1px gestreckt Checkbox zu hacken (dies ist, so dass Sie nicht sehen, die hässlichen Grenzen von FF)
Einfaches HTML: (folgen Sie dem Link, um das CSS mit Kommentaren zu überprüfen, der Code-Block ist für Stackoverflow) http://jsfiddle.net/KQghJ/
<label><div class="checkbox"><input type="checkbox" /></div> Label text</label>
Lösung Nr. 2 verwendet den "Checkbox Toggle Hack", um den CSS-Zustand eines DIV umzuschalten, das korrekt im Browser positioniert und mit einem einfachen Sprite für die nicht angekreuzten und angekreuzten Zustände der Checkbox eingerichtet wurde. Alles, was nötig ist, ist die Anpassung der Hintergrundposition mit dem besagten Checkbox Toggle Hack. Dies ist meiner Meinung nach die elegantere Lösung, da Sie mehr Kontrolle über Ihre Kontrollkästchen und Radios haben und garantieren können, dass sie in allen Browsern gleich aussehen.
Einfaches HTML: (folgen Sie dem Link, um das CSS mit Kommentaren zu überprüfen, der Code-Block ist für StackOverflow) http://jsfiddle.net/Sx5M2/
<label><input type="checkbox" /><div class="checkbox"></div>Label text</label>
Wenn jemand mit diesen Methoden nicht einverstanden ist, hinterlasst mir bitte einen Kommentar, ich würde gerne ein Feedback dazu hören, warum andere nicht auf diese Lösungen gestoßen sind, oder wenn sie es sind, warum ich hier keine Antworten dazu sehe? Wenn jemand sieht, dass eine dieser Methoden fehlschlägt, wäre es schön, das auch zu sehen, aber diese wurden in den neuesten Browsern getestet und basieren auf HTML / CSS-Methoden, die ziemlich alt sind, und universell, soweit ich gesehen habe.