纯css对radio和checkbox进行美化处理
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2019-05-21 09:52:15
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章
最终效果
直接在页面中添加下面js就可以啦,不用其它多余的操作

<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="renderer" content="webkit" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<style>
@-webkit-keyframes scale-spring{0%{opacity:.5;-webkit-transform:scale(0.5);transform:scale(0.5)}80%{opacity:.8;-webkit-transform:scale(1.1);transform:scale(1.1)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-moz-keyframes scale-spring{0%{opacity:.5;-moz-transform:scale(0.5);transform:scale(0.5)}80%{opacity:.8;-moz-transform:scale(1.1);transform:scale(1.1)}100%{opacity:1;-moz-transform:scale(1);transform:scale(1)}}@keyframes scale-spring{0%{opacity:.5;-webkit-transform:scale(0.5);-moz-transform:scale(0.5);transform:scale(0.5)}80%{opacity:.8;-webkit-transform:scale(1.1);-moz-transform:scale(1.1);transform:scale(1.1)}100%{opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1)}}label{display:inline-block}label span{display:block;margin-left:20px;height:30px;line-height:30px}label input[type=checkbox],label input[type=radio]{margin:7px 0px 0px 0px;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;width:16px;height:16px;cursor:pointer;vertical-align:center;background:#fff;border:2px solid #28bd8b;-webkit-box-pack:center;-moz-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;float:left}label input[type=checkbox]:checked:after,label input[type=radio]:checked:after{content:"";display:block;width:8px;height:8px;background:#28bd8b;-webkit-animation-name:scale-spring;-moz-animation-name:scale-spring;animation-name:scale-spring;-webkit-animation-duration:.3s;-moz-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}label input[type=checkbox]:disabled,label input[type=radio]:disabled{border-color:#cecece}label input[type=checkbox]:disabled:after,label input[type=radio]:disabled:after{background-color:#cecece}label input[type=radio],label input[type=radio]:checked:after{-moz-border-radius:50%;border-radius:50%}
</style>
</head>
<body>
<label>
<input type="checkbox" /><span>1111</span></label>
<label>
<input type="checkbox" disabled="disabled" /><span>222</span></label>
<label>
<input type="checkbox" checked="checked" disabled="disabled" /><span>222</span></label>
<label>
<input type="radio" name="test" /><span>aaa</span></label>
<label>
<input type="radio" name="test" /><span>bbb</span></label>
</body>
</html>scss源码
@-webkit-keyframes scale-spring {
0% {
opacity: .5;
-webkit-transform: scale(0.5);
transform: scale(0.5)
}
80% {
opacity: .8;
-webkit-transform: scale(1.1);
transform: scale(1.1)
}
100% {
opacity: 1;
-webkit-transform: scale(1);
transform: scale(1)
}
}
@-moz-keyframes scale-spring {
0% {
opacity: .5;
-moz-transform: scale(0.5);
transform: scale(0.5)
}
80% {
opacity: .8;
-moz-transform: scale(1.1);
transform: scale(1.1)
}
100% {
opacity: 1;
-moz-transform: scale(1);
transform: scale(1)
}
}
@keyframes scale-spring {
0% {
opacity: .5;
-webkit-transform: scale(0.5);
-moz-transform: scale(0.5);
transform: scale(0.5)
}
80% {
opacity: .8;
-webkit-transform: scale(1.1);
-moz-transform: scale(1.1);
transform: scale(1.1)
}
100% {
opacity: 1;
-webkit-transform: scale(1);
-moz-transform: scale(1);
transform: scale(1)
}
}
label {
display: inline-block;
span {
display: block;
margin-left: 20px;
height: 30px;
line-height: 30px;
}
input[type=checkbox],
input[type=radio] {
margin: 7px 0px 0px 0px;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
outline: none;
width: 16px;
height: 16px;
cursor: pointer;
vertical-align: center;
background: #fff;
border: 2px solid #28bd8b;
-webkit-box-pack: center;
-moz-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-align: center;
-moz-box-align: center;
-ms-flex-align: center;
align-items: center;
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: flex;
float: left;
&:checked:after {
content: "";
display: block;
width: 8px;
height: 8px;
background: #28bd8b;
-webkit-animation-name: scale-spring;
-moz-animation-name: scale-spring;
animation-name: scale-spring;
-webkit-animation-duration: .3s;
-moz-animation-duration: .3s;
animation-duration: .3s;
-webkit-animation-fill-mode: both;
-moz-animation-fill-mode: both;
animation-fill-mode: both;
}
&:disabled {
border-color: #cecece;
}
&:disabled:after {
background-color: #cecece;
}
}
input[type=radio],
input[type=radio]:checked:after {
-moz-border-radius: 50%;
border-radius: 50%;
}
}