通过“:checked”状态来自定义复选框效果
html
<form action="#">
<div class="wrapper">
<div class="box">
<input type="radio" checked="checked" id="boy" name="1"/>
<span></span>
</div>
<label for="boy">男</label>
</div>
<div class="wrapper">
<div class="box">
<input type="radio" id="girl" name="1"/>
<span></span>
</div>
<label for="girl">女</label>
</div>
</form>
css
form{
margin-top: 100px;
margin-left: 100px;
}
.wrapper{
width: 500px;
height: 30px;
font-size: 18px;
}
label{
float: left;
margin-left: 10px;
}
.box{
float: left;
background: orange;
position: relative;
width: 25px;
height: 25px;
border-radius: 100%;
}
.box input{
width: 100%;
height: 100%;
position:absolute;
top:0;
left: 0;
/*必须设置位置,否则点击会出现不灵敏*/
opacity: 0;
z-index: 100;
/*使input按钮在span的上一层,不加点击区域会出现不灵敏*/
}
.box span{
width: 10px;
height: 10px;
display: block;
border-radius: 100%;
position: absolute;
top: 30%;
left: 30%;
z-index:1;
background: white;
}
input[type="radio"]+span{
opacity: 0;
}
input[type="radio"]:checked+span{
opacity: 1;
}
效果:
input[type="radio"]:checked+span:加号是相邻兄弟选择器的结合符,选择紧接在另一个元素后的元素,且两个元素必须拥有相同的父元素。比如这个选择的是type="radio"的input标签被选中时,后面紧跟的span标签。也就是改变的是这个span标签的样式