自定义单选/复选框样式

实现自定义单选/复选框都是将html的input隐藏掉,然后利用label标签和input的绑定关系,对label标签的样式进行设定。一种是用自定义背景图片,另一种是单纯用css和伪类,比较之后觉得用纯css实现更方便些,于是采用了这种方式。
label与input的绑定。当input标签设置了id时,将label标签的for属性设置为与绑定的input一致,这样就可以实现点击该label标签时,选中与之关联的input选框。
html代码如下,举最简单的单选和复选例子。

<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<body>
    <div>
        <input type="radio" name="sex" value="male" id="male"><label for="male"></label><br>
        <input type="radio" name="sex" value="female" id="female"><label for="female"></label>
    </div>
    <div>
        <input type="checkbox" name="num" value="a" id="1"><label for="1">A</label><br>
        <input type="checkbox" name="num" value="b" id="2"><label for="2">B</label><br>
        <input type="checkbox" name="num" value="c" id="3"><label for="3">C</label>
    </div>
</body>
</html>

css代码如下,主要是隐去自有的input,设置label的伪类样式。

input[type=radio], input[type=checkbox]{
    display: none;
}
label:before{
    content:'';
    display: inline-block;
    width: 16px;
    height: 16px;
    background-color: #f5f5f5;
    border:1px solid #999;
    margin-right: 3px;
    margin-bottom: -2px;
}
input[type=radio]+label:before{
    border-radius: 50%;
}
input[type=checkbox]+label:before{
    border-radius: 3px;
}
input[type=radio]:checked+label:before{
    content: '\2022';
    color: #f5f5f5;
    font-size: 20px;
    text-align: center;
    line-height: 15px;
    background-color: #67a4ee;
    border-color: #67a4ee;
}
input[type=checkbox]:checked+label:before{
    content:'\2713';
    font-size: 15px;
    color: #f5f5f5;
    background-color: #67a4ee;
    text-align: center;
    line-height: 15px;
    border-color: #67a4ee;
}       

实现自定义效果如下:
自定义单选/复选框

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值