美化单选框

本文介绍了两种方法来美化HTML中的单选框,包括纯CSS修改样式和CSS结合JS模拟实现。虽然这两种方法在IE中可能不兼容,但它们让单选框看起来更加美观。
摘要由CSDN通过智能技术生成

老规矩,先上图

第一种:
这里写图片描述
第二种:
这里写图片描述

上面两种长得差不多,但是是用两种方式实现的

第一种:通过修改css实现

html

<div>
    <input type="radio" class="rdo" name="sex" checked style="">
    <label class="rdo-text"></label>
    <input type="radio" class="rdo" name="sex">
    <label class="rdo-text"></label>
</div>

css(重头戏)

.rdo {
    width: 0px;
    margin-right: 25px;/*选项之间的距离*/
    position: relative;
}
    .rdo:before,.rdo:after {
    content: '';
    position: absolute;
    border-radius: 50%; /*圆角*/
    transition: .4s ease; /*中点跳转的速度*/
}
    .rdo:before {/*所有选项*/
    width: 18px;
    height: 18px; /*外圆的大小*/
    background-color: #fff; /*圆环的颜色*/
    border: 1px solid pink;/*外圆的边框*/
}
    .rdo:after {/*未选中的中点*/
    top: 6px;
    left: 6px;
    width: 8px;
    height: 8px;
    background-color: #fff; /*未选的中点的颜色*/
}
    .rdo:checked:after {/*选中的中点*/
    top: 4px;
    left: 4px;
    width: 12px;
    height: 12px;
    background-color:pink; /*选中的中点*/
}
    .rdo:checked:before {
     border-color:pink; /*选中的外圆边框*/
}
    .rdo-text{
        font-size: 15px;
        position: relative;
        top: 3px;
        left: -6px;
}

第二种:css+js(模拟单选框)
html

<div class="sex">  
    <div class="women">  
        <label for="women">女</label>  
        <div class="user-defined">  
            <span class="circle active"></span>  
        </div>
    </div>  
    <div class="man">  
        <label for="man">男</label>  
        <div class="user-defined">  
            <span class="circle"></span>  
        </div>  
    </div>  
</div>

css

.sex > div { 
        position: relative;
        float: left;
        height: 35px;
        line-height:35px;
         }  
    .sex label { 
        display: block; 
        width: 50px; 
        height:35px; 
        line-height: 35px; 
        position: absolute;
        left: 20px}  
    .user-defined {
        position: absolute; 
        top: 0; bottom: 0;
        margin: auto;
        width:12px;  
        height: 12px;/*外圆大小*/
        border: 1px solid red; /*外圆边框*/
        border-radius: 50%; 
        cursor: pointer;/*鼠标手*/
        }  
    .circle  { /*未选中的内圆*/
        display: block; 
        width: 8px; 
        height: 8px; 
        margin-top:2px;
        margin-left: 2px; 
        background-color: #fff; 
        border-radius: 50%; }  
    .active  { /*选中的内圆*/
        background-color: #f2572c; 
        }  

js

<script src="js/jquery.min.js"></script>
        <script>
        $(".women").on("click",function() {  
            $(".user-defined>span",this).addClass("active");  
            $(this).next().children().last().children().removeClass("active");  
        });  
        $(".man").on("click",function() {  
            $(".user-defined>span",this).addClass("active");  
            $(this).prev().children().last().children().removeClass("active");  
        }); 
        </script>

写完感觉自己美美哒~

这里写图片描述

上面两种方法都不兼容IE,蓝瘦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值