label模拟radio、checkbox,自定义radio和checkbox

原创 2016年08月30日 20:04:02
最近做的项目选项框比较多,为了让界面看起来更加美观,决定自定义radio和checkbox,功能不变的情况下提高用户体验。

这里比较关键的一点是用到label的for属性。

w3c的label介绍:

<label> 标签为 input 元素定义标注(标记)。
label 元素不会向用户呈现任何特殊效果。不过,它为鼠标用户改进了可用性。如果您在 label 元素内点击文本,就会触发此控件。就是说,当用户选择该标签时,浏览器就会自动将焦点转到和标签相关的表单控件上。

<label> 标签的 for 属性应当与相关元素的 id 属性相同。

所以当我们为label用for属性绑定了指定元素id时候,只要我们点击label,就会触发绑定的元素。可以在w3c查看例子。http://www.w3school.com.cn/tiy/t.asp?f=html_label


好了原理讲明白后,就可以开始自定义我们的radio和checkbox。大致思路就是用label绑定radio,然后设置radio为不显示,在自定义label的样式就行了。


html代码:

<div class="testOptions">
        <ul>
            <li><input type="radio" id="radio01" name="check"><label for="radio01"></label>选项</li>
            <li><input type="radio" id="radio02" name="check"><label for="radio02"></label>选项</li>
            <li><input type="radio" id="radio03" name="check"><label for="radio03"></label>选项</li>
            <li><input type="radio" id="radio04" name="check"><label for="radio04"></label>选项</li>
        </ul>

        <ul>
            <li><input type="checkbox" id="checkbox01" name="check"><label for="checkbox01"></label>选项</li>
            <li><input type="checkbox" id="checkbox02" name="check"><label for="checkbox02"></label>选项</li>
            <li><input type="checkbox" id="checkbox03" name="check"><label for="checkbox03"></label>选项</li>
            <li><input type="checkbox" id="checkbox04" name="check"><label for="checkbox04"></label>选项</li>
        </ul>
    </div>

     <div class="_testOptions">
        <ul>
            <li><input type="checkbox" id="checkbox001" name="check"><label for="checkbox001"></label>选项</li>
            <li><input type="checkbox" id="checkbox002" name="check"><label for="checkbox002"></label>选项</li>
            <li><input type="checkbox" id="checkbox003" name="check"><label for="checkbox003"></label>选项</li>
            <li><input type="checkbox" id="checkbox004" name="check"><label for="checkbox004"></label>选项</li>
        </ul>
    </div>
css代码:
.testOptions li,._testOptions li{margin: 5px 0px;}
/*隐藏选项框*/
.testOptions input[type='checkbox'],.testOptions input[type='radio'],
._testOptions input[type='checkbox']{
    visibility: hidden;
    cursor: pointer;
}

/*设置label样式*/
.testOptions input[type='radio']+label,.testOptions input[type='checkbox']+label,
._testOptions input[type='checkbox']+label{
    display: inline-block;
    vertical-align: top;
    width: 1.3em;
    height: 1.3em;
    margin-right:5px;
    position: relative;
    background-color: #d8d4d4;
    transition: background 0.5s linear;
    box-sizing:border-box;
    -webkit-transition: background 0.3s linear;
    -webkit-box-sizing:border-box;
}
/*相邻选择器来模拟选项被选择的效果*/
.testOptions input[type='radio']+label{border-radius: 50%;}
.testOptions input[type='radio']:checked+label {border:0.35em #d8d4d4 solid;background-color: #0ab5f1;}
.testOptions input[type='checkbox']:checked+label {background-image: url("image/check_32px.png");background-size: 100% 100%;}

._testOptions input[type='checkbox']:checked+label:after{content: "√";font-size: 20px;font-weight:bold;color: #0ab5f1;}
</style>
效果图:(一个利用伪元素打钩,一个图片)

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

浅谈magic-check——美化单选款、复选框

单选框Radio和多选框checkbox需要美化吗?当然,原生的样式百年不变已经满足不了我们客户的需求。表单很多控件需要美化,我们有借 助Javascript来做美化的,也有直接用CSS来美化的,今天...

自定义radio与checkbox的样式

由于input中的radio与checkbox的样式比较单一而且样式不是很美观,所以我们一般都想定义一个自己比较喜欢的样式,偶然发现这种自定义方法比较容易理解,在此特意分享一下: 首先是自定义单选框...

RadioButton去掉默认样式小圆点

<RadioButton android:id="@+id/british_stock" android:layout_width="wrap_content" android...

隐藏表单 radio的圈圈

display:none;" name="kind" type="radio" value="2">  归类:CSS 表单

CheckBox点击lable文字选中

这是一个例子: 复选框 与之间--> for="check1">姓名 id="check1" value="123" name="name"> 密码 注意事项:文字必须是labe....

自定义input checkBox的样式

参考地址 http://www.cnblogs.com/CheeseZH/p/4580062.html 在做电商网站的时候,在产品页会有搭配选择的面板,这个时候设计就出了什么鬼的checkbox,好...

在bootstrap 中 的 radio button 设置 checked

通过js来修改 在bootstrap buttons 中被隐藏的 input  radio 的组件的上级label 的class ,来显示是否被选中。 $('input[type="radio"...

隐藏表单 radio的圈圈,用label代替按钮(加上bootstrap或其它修改样式达到美观)

先隐藏radio的按钮:display:none;" name="kind" type="radio" value="2"> 修改样式: Bootstrap的按钮样式也可以插入...

radio控件使用

如题。         radio控件的使用,是通过name属性来控制的。只要你的radio的name是相同的。则可以使得该组中的radio控件只有一个可以被选中。         如果要控制某一个r...

一款非常漂亮的bootstrap表单checkbox/radio样式推荐

转自:http://blog.csdn.net/killzero/article/details/20282789?utm_source=tuicool http://www.bootcss.co...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)