利用css的label的伪类(::before)代替checkbox和radio效果:
优点:需要图片来调整选中前和选中后的样式,纯css搞定
缺点:兼容性,IE8以下不支持
在线例子:
单选框
男 女多选框
苹果 橙子代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>css改变默认的radio和checkbox的样式</title>
<style>
input[type="radio"],
input[type='checkbox'] {
display: none;
}
input[type='radio']+label::before,
input[type='checkbox']+label::before {
content: '';
display: inline-block;
width: 15px;
height: 15px;
margin-right: 6px;
border-radius: 100%;
vertical-align: middle;
border: 1px solid #E4E4E4;
background: #FFFFFF;
background-image: url('https://i.loli.net/2018/07/20/5b517d0bf066a.png');
background-position: 0px 0px;
}
input[type='radio']:hover+label::before,
input[type='checkbox']:hover+label::before {
background-position: -15px 0px;
}
input[type='radio']:checked+label::before,
input[type='checkbox']:checked+label::before {
background-position: -15px -15px;
}
</style>
</head>
<body>
<p>单选框</p>
<input type="radio" name="sex" value="man" id="man" checked>
<label for="man">男</label>
<input type="radio" name="sex" value="female" id="female">
<label for="female">女</label>
<p>多选框</p>
<input type="checkbox" name="fruits" value="apple" id="apple" checked>
<label for="apple">苹果</label>
<input type="checkbox" name="fruits" value="orange" id="orange">
<label for="orange">橙子</label>
</body>
</html>
本文介绍如何使用CSS的label伪类::before替代默认的radio和checkbox样式,通过纯CSS实现自定义图片效果,适用于单选框和多选框。但请注意,此方法在IE8以下浏览器不兼容。
1006

被折叠的 条评论
为什么被折叠?



