checkbox和radio样式美化

看惯了input[checkbox]和input[radio]默认样式,有没有想要改变一下呢?比如下面的样式:

 比起html默认的样式,上图这些是不是美观多了呢?并且这样的input美化,无需jquery插件,只要几行css代码就可以。

思路

 

思路很简单:(1)将之前的按钮透明度opacity设置为0;(2)外层用div包裹

实现过程

图片下载:      

【html代码】

<div class="hdz_input_radio checked"><input type="radio" checked="checked" value="1" class="hdz_radio"/></div>

【css代码】

.hdz_input_radio{
    width: 14px;
    height: 14px;
    padding-top: 3px;
    background: url(images/radio.png);
}
.hdz_input_radio.checked{
    background: url(images/radio_checked.png);
}

.hdz_radio {
    opacity: 0;
    cursor: pointer;
    -ms-filter:"progid:DXImageTransform.Miscrosoft.Alpha(Opacity=0)";
    filter:alpha(opacity=0);
}

checkbox方法一样:

【html代码】

<div class="hdz_input_checkbox checked"><input type="checkbox" name=" checkbox" class="hdz_checkbox " value="1"/></div>

【css代码】

.hdz_input_checkbox {
    width: 14px;
    height: 14px;
    background: url(images/checkbox.png);
}
. hdz_input_checkbox.checked {
    background: url(images/checkbox_checked.png);
}
. hdz_checkbox {
    opacity: 0;
    cursor: pointer;
    -ms-filter:"progid:DXImageTransform.Miscrosoft.Alpha(Opacity=0)";
    filter:alpha(opacity=0);
}

到这里为止,美化步骤就结束了。但是还缺少了js的点击切换效果。其实切换效果的思路也是比较简单的。

radio:

这是单选控件,所以我们只要将一个组内的name值设置成一样,通过改变css的class就可以了。

$(". hdz_input_radio").on("click",function(){
    $(this).addClass("checked").siblings().removeClass("checked");
})

checkbox:

这是多选控件,所以我们对其class做toggle就可以了。

$(".hdz_input_checkbox").on("click",function(){
    $(this).toggleClass("checked");
})

或者自己写toggle方法:

$(".hdz_input_checkbox").on("click",function(){
    $(this).hasClass("checked") ?$(this).removeClass("checked"):$(this).addClass("checked")
})
时间: 2024-07-28 17:42:50

checkbox和radio样式美化的相关文章

css input checkbox和radio样式美化

css input checkbox和radio样式美化 2014年9月1日 132495次浏览 在之前的一篇文章中,我已经介绍了input file上传按钮的美化,地址:http://www.haorooms.com/post/css_input_uploadmh ,今天,我们来讲一下checkbox美化和radio美化,关于select下拉框的美化的话,要用一个jquery插件了,这个插件后面我们再讲!急用的同学可以留言! 但是像checkbox美化和radio美化,input美化,根本就不

jQuery实现自定义checkbox和radio样式

jQuery实现自定义checkbox和radio样式 1,起因 最近在工作中要实现自定义式的radio样式,而我们通常使用的时默认的样式,因为自己实在想不到解决的方法,于是开始搜索,最终看到了不错的解决办法,可以完美解决我们遇到的问题. 2,原理 大家都知道在写结构的时候,radio或checkbox都会跟随label一起使用,label的for属性值和input的id值相同的情况下,点击label就可以选中input,这里正是利用label 来覆盖我们的input默认样式,通过给label添

自定义checkbox, radio样式总结

任务目的 深入了解html label标签 了解CSS边框.背景.伪元素.伪类(注意和伪元素区分)等属性的设置 了解CSS中常见的雪碧图,并能自己制作使用雪碧图 任务描述 参考 样例(点击查看),实现页面开发,要求实现效果基本一致 任务注意事项 尝试背景图和伪元素两种不同方式实现,对比两种方式各自的优缺点. 注意测试不同情况,尤其是极端情况下的效果. 参考资料 MDN label: 了解html中label的基本知识 MDN background-position: 了解背景图片定位相关知识 M

自定义checkbox, radio样式

17.2.25.nimil 今天开始做百度前端学院的任务,第一个是自定义checkbox, radio样式. checkbox和radio两个标签是不可以改变样式的,background-color.border等属性都对其无效. 但是本身的样式又不太美观: 本身的radio外观:本身的checkedbox外观. 不能改样式,却又如此的不美观,实在不符合我们现在的审美和需求. 这是百度给的一个样式图片: 首先,HTML: <div> <input type="radio&quo

[ HTML5 表单样式 checkbox | radio ] 自定义checkbox 与radio样式实现思路

自定义checkbox 与radio样式实现思路: 1.隐藏原生的input选框  2.自定义新的选框  3.并通过CSS或JS控制切换是否选中的状态 声明:转载自网络,本人只作为学习之用,如果原作者发现(觉着)有侵权意图敬请联系本人,删除或修改,本人尊重原文作者的劳动并对原文作者的分享表示感谢和敬意... 分析原理: 实现 1.结构:用label绑定input,推荐使用label包裹input,以减少不必要的id: 2.样式:隐藏input标签,为label添加背景或使用其他小标签(<i>&

HTML的checkbox和radio的美化

checkbox和radio的美化 checkbox: <style type="text/css"> input[type="checkbox"] { display: none; } input[type="checkbox"] + label { display: inline-block; position: relative; border: solid 2px #99a1a7; width: 35px; height: 3

div仿checkbox表单样式美化及功能

div仿checkbox表单样式美化及功能(checkbox的样式不好看)素材在底部: 效果图: window.css .bj { position: absolute; top: 0; left: 0; bottom: 1px; width: 100 % ; height: 980px; z - index: 9; background - color: #000; filter: alpha(opacity = 50); - moz - opacity: 0.5; - khtml - opa

css设置移动端checkbox和radio样式

复选框 `Checkbox `是 Web 应用常用控件,随处可见,原生的复选框控件一般就像下面这样: 这取决于操作系统和浏览器,有些时候,这种样子并不能满足设计要求,这时需要更为精致的复选框样式.以往只有少数浏览器才支持对这类控件应用样式,比如拿到这样一张设计图: blue.png 在过去,想要通过简单地修改样式达成这种设计效果根本不行,不过,现在借助强大的 CSS3 属性 appearance 可以对该类控件有空前的样式控制能力: input[type="checkbox"] { -

checkbox和radio的美化

checkbox: <style type="text/css"> input[type="checkbox"] { display: none; } input[type="checkbox"] + label { display: inline-block; position: relative; border: solid 2px #99a1a7; width: 35px; height: 35px; line-height: