<input type="radio" id="radio01" name="demo" /><label for="radio01">foo</label>
<input type="radio" id="radio02" name="demo" /><label for="radio02">bar</label>
<input type="radio" id="radio03" name="demo" /><label for="radio03">baz</label>
input[type="radio"] {
display: none;
}
label {
position: relative;
display: inline-block;
padding: 3px 3px 3px 20px;
cursor: pointer;
}
label::before,
label::after {
position: absolute;
content: '';
top: 50%;
border-radius: 100%;
-webkit-transition: all .2s;
transition: all .2s;
}
label::before {
left: 0;
width: 14px;
height: 14px;
margin-top: -8px;
background: #f3f3f3;
border: 1px solid #ccc;
}
label:hover::before {
background: #fff;
}
label::after {
opacity: 0;
left: 3px;
width: 8px;
height: 8px;
margin-top: -5px;
background: #3498db;
-webkit-transform: scale(2);
transform: scale(2);
}
input[type="radio"]:checked + label::before {
background: #fff;
border: 1px solid #3498db;
}
input[type="radio"]:checked + label::after {
opacity: 1;
-webkit-transform: scale(1);
transform: scale(1);
}