<label for="man" class="radio">
<span class="radio-bg"></span>
<input type="radio" name="sex" id="man" value="男" checked="checked" />男
<span class="radio-on"></span>
</label>
这个方法中最重要的是选中效果的类名:.radio input:checked + span.radio-on
+是CSS2的伪类,其意义为:p+p 选择紧接在 <p>元素之后的所有 <p>元素。
也就是找到选中的(:checked)的input,其之后的类名为radio-on的span元素做选中圆圈效果。
网上有很多美化方法是把label做成了圆圈,但是这样的话,单选的文字就必须要要放到label的外面,这导致了点击文字的时候,不能切换单选效果。
所以我在label里加了一个类名为radio-bg的span来专门做后面大的圆圈,再用一个类名为radio-on的span来做选中的前面小的圆圈。
这样就保留了点击label里的文字,也可以切换单选的效果。
以上就是如何使用纯CSS3美化单选按钮radio的示例代码分享的方法
1、首先打开hbuilder软件,新建几个默认的复选框。
2、然后在上方的style标签设置input的样式,先设置input的display属性为none,将默认的单选框去掉,在设置一下各个单选框的margin的距离。
3、接着在下方继续设置样式,设置label标签的before和after伪元素,将原有before的单选框选中状态的属性“checked+label”设置变为红色实心框,同时未选中的状态的“label::after”为白色空心方框。
4、最后打开浏览器,即可看到设置好的样式,其中被选中的是红色的实心方框,没被选择的则是没有颜色的方框。