Custom Checkboxes and Radios
Demo
Are you interested in HTML5 Web Components? Check X-Checkbox - a similar experiment, wrapped as a custom tag. If you are looking for a feature-complete form styling solution, you may want to check AcidJs.Forms.
Usage and Code Insight
<ul class="css3-radios"> <li><label><input type="radio" checked="checked" name="radios-01" /><span>checked radio button</span></label></li> <li><label><input type="radio" name="radios-01" /><span>unchecked radio button</span></label></li> <li><label><input type="radio" name="radios-01" disabled="disabled" /><span>disabled radio button</span></label></li> </ul> <ul class="css3-checkboxes"> <li><label><input type="checkbox" checked="checked" name="checkbox-01" /><span>selected checkbox</span></label></li> <li><label><input type="checkbox" name="checkbox-02" /><span>unselected checkbox</span></label></li> <li><label><input type="checkbox" name="checkbox-03" disabled="disabled" /><span>disabled checkbox</span></label></li> </ul> <p> </p> <p>Are you interested in <a href="html5-web-components.html" target="_blank">HTML5 Web Components</a>? Check <a href="x-checkbox-custom-web-component.html" target="_blank">X-Checkbox</a> - a similar experiment, wrapped as a custom tag. If you are looking for a feature-complete form styling solution, you may want to check <a href="http://wemakesites.net/?pageid=details&component=forms-js" target="_blank">AcidJs.Forms</a>.</p>
/** * @info Custom Imageless CSS Skinning for Checkboxes and Radiobuttons * @author Martin Ivanov * @web http://wemakesites.net * @blog http://acidmartin.wordpress.com/ * @twitter https://twitter.com/wemakesitesnet */ :root .css3-radios label, :root .css3-radios input[type="radio"] + span, :root .css3-radios input[type="radio"] + span::before, :root .css3-checkboxes label, :root .css3-checkboxes input[type="checkbox"] + span, :root .css3-checkboxes input[type="checkbox"] + span::before { display: inline-block; vertical-align: middle; } :root .css3-radios, :root .css3-checkboxes { position: relative; } :root .css3-radios label *, :root .css3-checkboxes label * { cursor: pointer; } :root .css3-radios input[type="radio"], :root .css3-checkboxes input[type="checkbox"] { opacity: 0; position: absolute; } :root .css3-radios input[type="radio"] + span, :root .css3-checkboxes input[type="checkbox"] + span { font: normal 11px/14px Arial, Sans-serif; color: #333; } :root .css3-radios label:hover span::before, :root .css3-checkboxes label:hover span::before { -moz-box-shadow: 0 0 2px #ccc; -webkit-box-shadow: 0 0 2px #ccc; box-shadow: 0 0 2px #ccc; } :root .css3-radios label:hover span, :root .css3-checkboxes label:hover span { color: #000; } :root .css3-radios input[type="radio"] + span::before, :root .css3-checkboxes input[type="checkbox"] + span::before { content: ""; width: 12px; height: 12px; margin: 0 4px 0 0; border: solid 1px #a8a8a8; line-height: 14px; text-align: center; -moz-border-radius: 100%; -webkit-border-radius: 100%; border-radius: 100%; background: #f6f6f6; background: -moz-radial-gradient(#f6f6f6, #dfdfdf); background: -webkit-radial-gradient(#f6f6f6, #dfdfdf); background: -ms-radial-gradient(#f6f6f6, #dfdfdf); background: -o-radial-gradient(#f6f6f6, #dfdfdf); background: radial-gradient(#f6f6f6, #dfdfdf); } :root .css3-radios input[type="radio"]:checked + span::before, :root .css3-checkboxes input[type="checkbox"]:checked + span::before { color: #666; } :root .css3-radios input[type="radio"]:disabled + span, :root .css3-checkboxes input[type="checkbox"]:disabled + span { cursor: default; -moz-opacity: .4; -webkit-opacity: .4; opacity: .4; } :root .css3-checkboxes input[type="checkbox"] + span::before { -moz-border-radius: 2px; -webkit-border-radius: 2px; border-radius: 2px; } :root .css3-radios input[type="radio"]:checked + span::before { content: "\2022"; font-size: 24px; } :root .css3-checkboxes input[type="checkbox"]:checked + span::before { content: "\2714"; font-size: 12px; }