怎么用CSS控制表单中的RADIO样式?

html-css0100

怎么用CSS控制表单中的RADIO样式?,第1张

用label,例如:

.add_cart_radio{

    float:left

    margin-top:0.5em

    margin-right:0.5em

}

.add_cart_radio input[type="radio"]{

    display:none

}

.add_cart_radio input[type="radio"] + label{

    padding:0.2em 1em

    border:1px solid #CCCCCC

    border-radius:0.5em

    color:#999

}

.add_cart_radio input[type="radio"]:checked + label{

    padding:0.2em 1em

    border:1px solid #FF6600

    border-radius:0.5em

    background:#FF6600

    color:#FFFFFF

}

HTML代码:

<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的示例代码分享的方法