HTML
<form>
<label>
<input type="checkbox" name="" value="0" class="checkbox">
<span class="checkbox-icon"></span>
チェックボックス
</label>
</form>
CSS
/*-------------------------------------------------
チェックボックス
----------------------------------------------- */
label input[type="checkbox"]{
display: none;
}
label{
cursor: pointer;
color: #333333;
font-weight: normal;
letter-spacing: 0;
display: inline-block;
position: relative;
margin-right: 20px;
}
label .checkbox-icon:before{
content:'';
border: 1px solid #ddd;
width: 20px;
height: 20px;
margin-right: 5px;
display: inline-block;
vertical-align: middle;
border-radius: 3px;
-webkit-transition: all 800ms cubic-bezier(1, 0, 0, 1);
-moz-transition: all 800ms cubic-bezier(1, 0, 0, 1);
-o-transition: all 800ms cubic-bezier(1, 0, 0, 1);
transition: all 800ms cubic-bezier(1, 0, 0, 1);
-webkit-transition-timing-function: cubic-bezier(1, 0, 0, 1);
-moz-transition-timing-function: cubic-bezier(1, 0, 0, 1);
-o-transition-timing-function: cubic-bezier(1, 0, 0, 1);
transition-timing-function: cubic-bezier(1, 0, 0, 1);
background: #ffffff;
}
label input[type="checkbox"]:checked + .checkbox-icon:before{
opacity: 0;
background: #eee;
border-color: #eee;
transform:scale(2);
}
label .checkbox-icon:after{
content:'';
opacity: 0;
position: absolute;
left: 8px;
top: 0px;
width:8px;
height: 16px;
border-right: 2px solid #ddd;
border-bottom: 2px solid #ddd;
transform:rotate(-200deg);
-webkit-transition: all 400ms cubic-bezier(1, 0, 0, 1);
-moz-transition: all 400ms cubic-bezier(1, 0, 0, 1);
-o-transition: all 400ms cubic-bezier(1, 0, 0, 1);
transition: all 400ms cubic-bezier(1, 0, 0, 1);
-webkit-transition-timing-function: cubic-bezier(1, 0, 0, 1);
-moz-transition-timing-function: cubic-bezier(1, 0, 0, 1);
-o-transition-timing-function: cubic-bezier(1, 0, 0, 1);
transition-timing-function: cubic-bezier(1, 0, 0, 1);
}
label input[type="checkbox"]:checked + .checkbox-icon:after{
opacity: 1;
position: absolute;
left: 8px;
top: 0px;
width:8px;
height: 16px;
border-right: 2px solid #e93653;
border-bottom: 2px solid #e93653;
transform:rotate(40deg);
}