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;
}