【HTML+CSS】教你切图篇3-自定义单选、多选、下拉框的实现

大家都知道,默认的单选、多选、下拉控件样式实在是丑哭了。下面小编介绍两种实现单选、多选、下拉控件的样式。首先来介绍第一种:

1.用CSS+HTML实现

这种实现方式是简单,获取数据方便,兼容主流浏览器,缺点就是IE8以及以下的浏览器都不兼容,所以要兼容到更低版本的IE浏览器就需要用到第二种方法了。

首先先看效果图:

【HTML+CSS】教你切图篇3-自定义单选、多选、下拉框的实现_第1张图片

代码如下:

<!DOCTYPE html>
<html>
<head>
	<title>表单测试</title>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<style type="text/css">
	/*复选 S*/
	/*将input隐藏,设置label标签的背景,替换成checkbox,实现自定义标签样式*/
	.checkbox{
		width: 100px;height: 80px;float: left;
	}
	.checkbox01{
		display: none;
		width: 30px;height: 30px;
	}
	.checkbox label{
		display: block;
		width: 80px;height: 40px;
		background: url(images/rb01.png) no-repeat left center;
	}
	/*通过设置checkbox的点击事件实现label的背景图片更换*/
	.checkbox01:checked+label{
		background: url(images/rb02.png) no-repeat left center;
	}
	/*复选 E*/
	/*单选 S*/
	.radio{
		width: 100px;height: 80px;float: left;
	}
	.radio01{
		display: none;
		width: 30px;height: 30px;
	}
	.radio label{
		display: block;
		width: 80px;height: 40px;
		background: url(images/cbox_01.png) no-repeat left center;
	}
	/*通过设置radio的点击事件实现label的背景图片更换*/
	.radio01:checked+label{
		background: url(images/cbox_02.png) no-repeat left center;
	}
	/*单选 E*/
	</style>
</head>
<body>
	<div class="checkbox">
		复选框
		<input type="checkbox" name="c01" class="checkbox01" id="01"></input>
		<!--for属性表示在label内点击,就会触发radio控件-->
		<label for="01" ></label>
		<input type="checkbox" name="c02" class="checkbox01" id="02"></input>
		<label for="02" ></label>
		<input type="checkbox" name="c03" class="checkbox01" id="03"></input>
		<label for="03" ></label>
	</div>
	<div class="radio">
		单选框
		<input type="radio" name="c01" class="radio01" id="04"></input>
		<!--for属性表示在label内点击,就会触发radio控件-->
		<label for="04" ></label>
		<input type="radio" name="c01" class="radio01" id="05"></input>
		<label for="05" ></label>
		<input type="radio" name="c01" class="radio01" id="06"></input>
		<label for="06" ></label>
	</div>
</body>
</html>

其实关键是.checkbox01:checked+label这个选择器,实现的原理是首先设置<label>标签的背景,隐藏<input>标签,当<input>标签被点击时,改变<label>标签的背景。后天获取数据时仍然是获取<input>的数据,非常方便。要注意一点是<label>的for属性一定对应<input>标签的id哦。

2.JQuery实现

首先看效果图:

【HTML+CSS】教你切图篇3-自定义单选、多选、下拉框的实现_第2张图片

这种主要是用一个大神的插件实现的,插件基于JQuery框架编写,所以在引入插件js文件时首先要引入JQuery文件,两个文件链接,JQuery:http://pan.baidu.com/s/1jGValUm 插件:http://pan.baidu.com/s/1qWV3JjA怎么使用在注释里写得很清楚。这种方法的好处是兼容各种主流浏览器,包括IE7、8,不便的地方是获取数据时需要根据节点获取数据,下面贴出我的html代码:

<!DOCTYPE html>
<html>
<head>
	<title>通用自定义样式单选、复选框</title>
	<meta charset="utf-8"/>
	<link rel="stylesheet" type="text/css" href="css/style.css"/>
</head>
<body>
	<div class="wrap">
		<!-- 单选框 S -->
		<div class="rbt_wrap">
			<div name="rbt" type="radiobox" val="man" class="checked">苹果</div>
			<div name="rbt" type="radiobox" val="wom">香蕉</div>
			<div name="rbt" type="radiobox" val="wom">梨</div>
			<div name="rbt" type="radiobox" val="wom">西瓜</div>
			<div name="rbt" type="radiobox" val="wom">菠萝</div>
			<div name="rbt" type="radiobox" val="wom">芒果</div>
		</div>
		<!-- 单选框 E -->
		<!-- 多选框 S -->
		<div class="cbt_wrap">
			<div class="cbt all" name="checkAll" type="checkbox">全选</div>
			<div class="cbt" name="check"  type="checkbox" val="1" >A</div>
			<div class="cbt" name="check"  type="checkbox" val="2" >B</div>
			<div class="cbt" name="check"  type="checkbox" val="3">C</div>
		</div>
		<div class="cbt_wrap">
			<div class="cbt all" name="check1All" type="checkbox">全选</div>
			<div class="cbt" name="check1"  type="checkbox" val="1" >A</div>
			<div class="cbt" name="check1"  type="checkbox" val="2" >B</div>
			<div class="cbt" name="check1"  type="checkbox" val="3">C</div>
		</div>
		<!-- 多选框 E -->
		<!-- 下拉框 S -->
		<div name="city" type="selectbox">
			<div class="select_icon"></div>
			<div class="opts">
				<a href="javascript:;" val="050101">苏州</a>
				<a href="javascript:;" val="050101" class="selected">无锡</a>
				<a href="javascript:;" val="050101" class="selected">常州</a>
				<a href="javascript:;" val="050101" class="selected">杭州</a>
			</div>
		</div>
		<!-- 下拉框 E -->
	</div>
<script src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script> 
<script type="text/javascript" src="js/jquery.inputbox.js"></script>
<script type="text/javascript">
//checkbox
$(function(){
	$('[name="rbt"]').inputbox();
	$('.cbt').inputbox();//多组选项框均适用
	$('div[name="city"]').inputbox();
});

</script>
</body>
</html>

事始:只要你还在尝试,就不算失败。




你可能感兴趣的:(【HTML+CSS】教你切图篇3-自定义单选、多选、下拉框的实现)