CSS 応用
ラジオボタンをCSSのみで装飾する
<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);
}
結果