很多时候在做移动端,还有小程序的时候经常会遇见UI设计的图中单选的颜色会很据系统的颜色而改变, 但是radio并不支持改变其本身的颜色,于是就产生了如何去改变radio颜色的问题。

<input type="radio" name="sex" value="boy">
<label for="boy" class="sexStyle">男</label> <br>
<input type="radio" name="sex" value="girl" >
<label for="girl" class="sexStyle">女</label>

默认是蓝色,而且也不是很好看,现在就可以通过css的伪元素来修改这个样式。

input[type="radio"]+label::before {
     content: " ";
     display: inline-block;
     vertical-align: middle;
     width: 13px;
     height: 13px;
     border-radius: 50%;
     border: 1px solid #999999;
     margin-right: 0.2rem;
     box-sizing: border-box;
     margin-top: -0.1rem;
}

input[type="radio"]:checked+label::before {
     background-color: #d73c3a;
     background-clip: content-box;
     border: 1px solid #d73c3a;
     padding: 0.1rem;
     box-sizing: border-box;
}
input[type="radio"] {
     position: absolute;
     clip: rect(0, 0, 0, 0);
}

通过伪元素覆盖原本的颜色,同时又保持了可点击,这样就能非常完美的解决这个问题了。

原文链接:https://blog.csdn.net/weixin_45461128/article/details/117420970