由于某种原因,可能需要对单选框(radio)或复选框(checkbox)进行美化,那么直接修改样式是行不通,要实现就需要添加js,以下js依赖于jquery

radio.js:

function radAchk(dom,cls){
var self = this;
if(!cls){
cls = "input-skin";
}
dom.each(function(){
var $t = $(this);
self.addUI($t,cls);
$t.click(function(){
self.eventIE();
});
});
self.eventIE();
}
radAchk.prototype.addUI = function(dom,cls){
dom.after($('<span class="'+ cls +'"></span>'));
}
radAchk.prototype.eventIE = function(dom){
if(window.addEventListener){//判断是否是ie7\ie8
return false;
}
setTimeout(function(){
dom.filter(":checked").trigger('change.checkbox');
dom.filter(":disabled").parent().addClass("disabled"); });
dom.on("change.checkbox",function(){
dom.not(":checked").parent().removeClass("active");
$(this).parent().addClass("active");
});
} ;(function($){
$.fn.radAndchk = function(cls){//cls 皮肤class
new radAchk(this,cls);
}
})(jQuery);

美化单选框(input[type=radio]):

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>radio checkbox</title>
<style>
*{ margin:0; padding:0; }
.radio-p{ height:30px; line-height:30px; margin-left:10px; }
.js-radio-box{ position:relative; overflow:hidden; padding-left:25px; cursor:pointer; }
.js-radio-box input[type=radio]{ opacity:0; filter:alpha(opacity=0); position:absolute; left:0; z-index:2; }
.js-radio-box .radio-skin{ position:absolute; left:0; top:50%; margin-top:-7px; display:inline-block; background:url("img/icon.png") no-repeat; width:16px; height:16px; z-index:1; }
.js-radio-box:hover .radio-skin{ background-position:0 -20px; }
.js-radio-box input:disabled + .radio-skin,.js-radio-box.disabled .radio-skin{ background-position:0 -20px; cursor:default; }
.js-radio-box input:checked + .radio-skin,.js-radio-box.active .radio-skin{ background-position:0 -40px; }
</style>
<script src="js/jquery-1.8.2.min.js"></script>
</head>
<body>
<p class="radio-p"></p>
<p class="radio-p"><label class="js-radio-box"><input type="radio" checked="true" value="1" name="name1" class="radio1" />单选1</label></p>
<p class="radio-p"><label class="js-radio-box"><input type="radio" value="2" name="name1" />单选2</label></p>
<p class="radio-p"><label class="js-radio-box"><input type="radio" disabled="disabled" value="3" name="name1" />单选3</label></p>
<p class="radio-p"></p>
<p class="radio-p"><label class="js-radio-box"><input type="radio" value="12" name="name2" />单选12</label></p>
<p class="radio-p"><label class="js-radio-box"><input type="radio" disabled="true" value="13" name="name2" />单选13</label></p> <script src="js/radio.js"></script>
<script>
$("input[type=radio]").radAndchk("radio-skin");//radio-skin 皮肤class
</script>
</body>
</html>

运行后,样式如下:

美化复选框(input[type=checkbox]):

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>checkbox checkbox</title>
<style>
*{ margin:0; padding:0; }
.checkbox-p{ height:30px; line-height:30px; margin-left:10px; }
.js-checkbox-box{ position:relative; overflow:hidden; padding-left:25px; cursor:pointer; }
.js-checkbox-box input[type=checkbox]{ opacity:0; filter:alpha(opacity=0); position:absolute; left:0; z-index:2; }
.js-checkbox-box .checkbox-skin{ position:absolute; left:0; top:50%; margin-top:-7px; display:inline-block; background:url("img/icon-chk.png") no-repeat; width:20px; height:16px; z-index:1; }
.js-checkbox-box:hover .checkbox-skin{ background-position:0 -40px; }
.js-checkbox-box input:disabled + .checkbox-skin,.js-checkbox-box.disabled .checkbox-skin{ background-position:0 -40px; cursor:default; }
.js-checkbox-box input:checked + .checkbox-skin,.js-checkbox-box.active .checkbox-skin{ background-position:0 -20px; }
</style>
<script src="js/jquery-1.8.2.min.js"></script>
</head>
<body>
<p class="checkbox-p"></p>
<p class="checkbox-p"><label class="js-checkbox-box"><input type="checkbox" checked="true" value="1" name="name1" class="checkbox1" />单选1</label></p>
<p class="checkbox-p"><label class="js-checkbox-box"><input type="checkbox" value="2" name="name1" />单选2</label></p>
<p class="checkbox-p"><label class="js-checkbox-box"><input type="checkbox" disabled="disabled" value="3" name="name1" />单选3</label></p>
<p class="checkbox-p"></p>
<p class="checkbox-p"><label class="js-checkbox-box"><input type="checkbox" value="12" name="name2" />单选12</label></p>
<p class="checkbox-p"><label class="js-checkbox-box"><input type="checkbox" disabled="true" value="13" name="name2" />单选13</label></p> <script src="js/radio.js"></script>
<script>
$("input[type=checkbox]").radAndchk("checkbox-skin");//checkbox-skin 皮肤class
</script>
</body>
</html>

运行后,样式如下:

单选框或复选框的样式可以根据设计图修改。

这个js不影响原本的js方法,如要给radio添加click事件,可以直接:

$("input[type=radio]").click(function(){

……

});

也可以根据需要设置checked、disabled属性。

radio(单选框)/checkbox(复选框) 美化的更多相关文章

  1. [oldboy-django][2深入django]Form组件实现生成: select下拉框, checkbox复选框,radio单选框以及如何实现自定义数据格式要求

    1 需求 - 1Form组件如何实现生成选择类标签: select,check, radio - 默认值 - 保留上次输入的值 - 2自定义验证规则 - RegexField - -

  2. 纯css3简单实用的checkbox复选框和radio单选框

    昨天为大家分享了一款很炫的checkbox复选框和radio单选框,今天再给大家带来一款简单实用的checkbox复选框和radio单选框.界面清淅.舒服.先给大家来张效果图: 在线预览   源码下载 ...

  3. 纯css3实现的超炫checkbox复选框和radio单选框

    之前为大家分享了好多css3实现的按钮.今天要为大家分享的是纯css3实现的checkbox复选框和radio单选框,效果超级炫.先让我们看看图吧! 在线预览   源码下载 这个实例完全由css3实现 ...

  4. 2.12 单选框和复选框(radiobox、checkbox)

    2.12 单选框和复选框(radiobox.checkbox) 本篇主要介绍单选框和复选框的操作一.认识单选框和复选框    1.先认清楚单选框和复选框长什么样 2.各位小伙伴看清楚哦,上面的单选框是 ...

  5. Selenium2学习(十五)-- 单选框和复选框(radiobox、checkbox)

    本篇主要介绍单选框和复选框的操作 一.认识单选框和复选框 1.先认清楚单选框和复选框长什么样 2.各位小伙伴看清楚哦,上面的单选框是圆的:下图复选框是方的,这个是业界的标准,要是开发小伙伴把图标弄错了 ...

  6. 如何让checkbox复选框只能单选

    function框架div 如何让checkbox复选框只能单选 在项目开发中遇到一个这样的问题,要让一列复选框架在任何时间段内只能选择一个. 有人说怎么不用单选框了,因为单选框一旦选择了就不能取消选 ...

  7. css input checkbox复选框控件 样式美化的多种方案

    checkbox复选框可能是网站中常用的html元素,但大多数人并不满意它的默认样式,这篇文章就讲讲如何实现input checkbox复选框控件 样式美化效果. 资源网站大全 https://55w ...

  8. Selenium2+python自动化19-单选框和复选框(radiobox、checkbox)

    本篇主要介绍单选框和复选框的操作 一.认识单选框和复选框 1.先认清楚单选框和复选框长什么样 2.各位小伙伴看清楚哦,上面的单选框是圆的:下图复选框是方的,这个是业界的标准,要是开发小伙伴把图标弄错了 ...

  9. JQuery对单选框,复选框,下拉菜单的操作

    JSP <%@ page language="java" import="java.util.*" pageEncoding="utf-8&qu ...

随机推荐

  1. 我和CMS的往事

    CMS(内容管理系统)放在web中理解,也就是我们常说的后台了,用于网站的日常管理.又到期末了,我们的课程——web程序设计,需要提交一份期末大作业,最近需要开发出一个基于JSP的简单web,所以呢, ...

  2. elasticsearch 查询所有文档

    0.添加一个索引 curl -i -XPUT http://172.31.250.16:10004/test_index/user/1 -d '{ "name": "小明 ...

  3. RFC3550中文

    RTP:实时应用程序传输协议   摘要 本文描述RTP(real-time transport protocol),实时传输协议.RTP在多点传送(多播)或单点传送(单播)的网络服务上,提供端对端的网 ...

  4. Codeforces 1209D Cow and Snacks

    题目大意 有 $n$ 个不同的糖果,从 $1$ 到 $n$ 编号.有 $k$ 个客人.要用糖果招待客人. 对于每个客人,这些糖果中恰有两个是其最爱.第 $i$ 个客人最爱的糖果编号是 $x_i$ 和 ...

  5. java的hashCode和equals为什么要同时重写?

    原因: java规范:相等的对象必须具有相等的散列码(hashCode) 同时对于HashSet和HashMap这些基于散列值(hash)实现的类.key的判断是通过hashCode完成,且散列也是通 ...

  6. C++学习 之 类的继承中的虚函数(笔记)

    1.多态行为 多态是面向对象语言的一种特征,让我们能够以类似的方式处理不同类型的对象.在C++中我们可以通过继承层次结构实现子类型多态. 我们可以通过下面的代码进一步了解多态: #include< ...

  7. python-day40(正式学习)

    目录 线程队列 1 2 3 线程定时器 进程池和线程池 线程队列 1 import queue q=queue.Queue() q.put('123') q.put('456') q.put('789 ...

  8. Windows系统下同时安装Python2和Python3

    Windows系统下同时安装Python2和Python3 说明 有时由于工作需求我们需要在Python2版本下面进行一些开发,有时又需要Python3以上的版本,那么我们怎么在一台电脑上同时安装多个 ...

  9. Spring框架是怎么解决Bean之间的循环依赖的 (转)

    问题: 循环依赖其实就是循环引用,也就是两个或则两个以上的bean互相持有对方,最终形成闭环.比如A依赖于B,B依赖于C,C又依赖于A.如下图:   如何理解“依赖”呢,在Spring中有: 构造器循 ...

  10. 导出excel-文件流

    后台代码(控制器或者dao层) public void Excel(){ //第一步:(1)以虚拟表的形式获取导出数据 DataTable dt_0 = this.service.Excel(); / ...