声明:文章为转载(略改动),点击查看原文。如有侵权24小时内删除,联系QQ:1522025433.

我们知道HTML默认的复选框样式十分简陋,而以图片代替复选框的美化方式会给页面表单的处理带来麻烦,那么本文将结合实例带您一起了解一下使用CSS3将复选框checkbox进行样式美化,并且带上超酷的滑动效果。

demo预览图(点击查看demo原地址):

点击下载demo源码:地址一

        备用下载

通常我们使用以下html结构,我们给复选框定义id#checkbox_a1,然后使用label的for属性与之关联,这样的话,用户点击label的时候,实际上就相当于点击了#checkbox_a1。

<input type="checkbox" id="checkbox_a1" class="chk_1" />
<label for="checkbox_a1">check</label>

通过label和checkbox,我们可以将checkbox隐藏,而将label制作为各种漂亮超酷的复选框样式。我们可以使用:before和:after伪元素来制作各种效果,如滑动按钮的效果。这些效果都可以通过相邻兄弟选择器来选择与checkbox相邻的label来实现,下面是一个简单的例子:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>使用css3美化复选框</title>
<style type="text/css">
/* 定义被选中之后的label样式*/
.chk-a1 + label {
position: relative; /*成为子元素的定位包含框,即里面的勾选符号 √ */
display: inline-block;/*定义成行内块元素,方便使用盒子模型的一些属性*/
padding: 9px;
background-color: #fff;
border: 1px solid #c1caca;
border-radius: 5px;/*实现圆角*/
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05), /*定义盒子外阴影*/
inset 0 -15px 10px -12px rgba(0, 0, 0, 0.05);/*定义盒子内阴影,用法详见css3查考手册*/
/*cursor: pointer; 鼠标经过为手型 根据需要添加*/
} /* 定义鼠标点击时label的样式*/
.chk-a1 + label:active {
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05),
inset 0 1px 3px rgba(0, 0, 0, 0.1);
/* 因为通过box-shadow属性定义鼠标点击时阴影的 变化,从而达到了 按钮 般的效果*/
} /* 定义被选中之后的label样式*/
.chk-a1:checked + label {
background-color: #ecf2f7;
border: 1px solid #92a1ac;
/* 定义多重阴影(美化)*/
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05),
inset 0 -15px 10px -12px rgba(0, 0, 0, 0.05),
inset 0 -15px 10px -12px rgba(255, 255, 255, 0.1);
color: #243441;/* 定义内部 字体颜色,在这主要是定义内部勾选 √ 符号的颜色*/
} /* 利用伪对象选中器为 被选中之后的label 内添加勾选 √ 符号*/
.chk-a1:checked + label:after {
content: '\2714'; /*\2714 为转义字符,代表 勾选 √ 符号*/
display: inline-block;
position: absolute;/*进行绝对定位*/
top: 0;
left: 0;
width: 100%;/*使宽度等于父元素的宽度,方便水平居中*/
margin-top: -7px;/*利用外边界取负值 调整到垂直居中*/
font-size: 1.4em;/*字体大小,即 √ 对号的大小*/
color: #243441;
text-align: center;/*水平居中*/
vertical-align: text-top;
} </style>
</head> <body>
<form action="123.php" method="get">
<p>使用css3美化复选框 </p>
<input type="checkbox" id="checkbox-a1" class="chk-a1" value="0" checked /> <label for="checkbox-a1"></label>
<!--设计思路--利用label做复选框,然后把真正的复选框 设置成 display: none; 隐藏掉即可 -->
<br />
<input type="checkbox" id="checkbox-a2" class="chk-a1" value="1" /> <label for="checkbox-a2"></label>
</form>
</body>
</html>

此实例效果图:

最后别忘了把,默认的复选框隐藏掉。即添加如下样式:

方法一:

/*    隐藏掉原来的复选框*/
.chk-a1 {
display: none;
}

方法一的效果:

方法二:

/*    方法二:定义原来的复选框为不可见*/
.chk-a1 {
visibility: hidden;
}

方法二的效果:

方法一直接不显示在文档流中,隐藏掉后不占据原来位置,

方法二是定义原复选框为不可见状态,隐藏掉仍占据原来位置!

根据情况,选择使用。

浏览页面效果,当点击label的时候,复选框出现勾选符号,表示选中状态,再次点击时,勾选符号消失,表示取消选中状态。

DEMO中,我们提供了4个示例,基本可以满足页面常见的复选框样式需求,有需要的可以直接下载源代码,复制css样式即可。你也可以根据项目需求对css样式进行适当修改。

补充说明

复选框的美化效果可以在IE9+浏览器中支持,那么ie8及以下浏览器需要恢复默认样式,使用以下代码:

<!--[if lte IE 8]>
<link href="ie8.css" rel="stylesheet" />
<![endif]-->

使用css3美化复选框的更多相关文章

  1. css3美化复选框checkbox

     两种美化效果如下图: 代码(html) <div id="main"> <h2 class="top_title">使用CSS3美化复 ...

  2. 使用CSS3美化复选框checkbox

    我们知道HTML默认的复选框样式十分简陋,而以图片代替复选框的美化方式会给页面表单的处理带来麻烦,那么本文将结合实例带您一起了解一下使用CSS3将复选框checkbox进行样式美化,并且带上超酷的滑动 ...

  3. 基于CSS3自定义美化复选框Checkbox组合

    今天我们要来分享一组非常漂亮的CSS3自定义复选框checkbox,每一个checkbox都有其各自的特点.有几款checkbox在选中的情况下还会出现动画效果,非常不错的CSS3自定义美化check ...

  4. 8个非常个性化的CSS3单/复选框

    单选框和复选框在网页表单中应用十分广泛,但是浏览器默认自带的单选框和复选框样式不仅不统一,而且大多都比较简单丑陋.本文给大家介绍了一些基于CSS3的个性化单选框和复选框,一些选中动画是基于jQuery ...

  5. CSS 美化复选框 - 无图片方式

    今天和大家分享一个不使用图片美化复选框的方式.来看下效果图吧,如下是3种不同状态下的效果: 一. Html结构 <div class="check-wrap"> < ...

  6. 纯css3实现美化复选框和手风琴效果(详细)

    关键技术点和原理: 原理就是把 checkbox或 radio 给隐藏掉   ,然后给选框 绑定一个label标签. 然后用label标签作为容器,在里面放一个:before或一个after 用bef ...

  7. 纯css美化复选框,单选框,滑动条(range)

    <div class="box"> <!-- 借鉴地址:http://www.cnblogs.com/xiaoxianweb/p/5465607.html --& ...

  8. 10个HTML5美化版复选框和单选框

    单选框Radiobox和复选框checkbox在网页中也十分常见,虽然它没有按钮的交互性强,但是如果能把它们像按钮那样美化一下,那也是非常不错的.本文收集了10个相对比较漂亮的美化版单选框和复选框,希 ...

  9. radio(单选框)/checkbox(复选框) 美化

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

随机推荐

  1. UML类关系(依赖,关联,聚合,组合,泛化,实现)

    转自https://blog.csdn.net/k346k346/article/details/59582926   在学习面向对象设计时,类关系涉及依赖.关联.聚合.组合和泛化这五种关系,耦合度依 ...

  2. java基础-Eclipse开发工具介绍

    java基础-Eclipse开发工具介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 所谓工欲善其事必先利其器,即将身为一名Java开发工程师怎么能没有一款好使的IDE呢?今天就 ...

  3. scss学习总结

    vue安装scss: npm install sass-loader node-sass --save-dev 注意事项: <style lang="scss" scoped ...

  4. vue项目 打包部署上线

    1. npm run dev:本地开发的时候做调试用的. 2. npm run build:打包部署上线,生成一个 dist 文件夹. 注意:用 npm run build 时,常遇到因引用路径不对导 ...

  5. Study 5 —— CSS概述

    CSS(Cascading Style Sheet)称为层叠样式表,也可以称为CSS样式表或样式表,其文件扩展名为.css,CSS是用于增强或控制网页样式,并允许将样式信息与网页内容分离的一种标记性语 ...

  6. python 小程序,打印数字

    要求如下: 指定一个数字 x ,然后打印 1到x 的所有数字,并问是否继续打印,否退出程序,是就继续.再指定一个数字 y ,如果 y> x 就显示 x+1 到 y 的所有数字,y <= x ...

  7. 尚硅谷spring_boot课堂笔记

    尚硅谷spring_boot课堂笔记

  8. Visual Studio 各版本下载

    http://baike.baidu.com/link?url=guN2bFtq-TvtdH-iDSiYFDJ-HF8R4_12qz6QRjxKxP2Nz8jK0p70KlmudolZOg-C3umq ...

  9. 第16月第12天 CABasicAnimation 旋转加速

    1. ; double duration = 10.0f; ; i<count; i++) { //旋转动画 CABasicAnimation *anima3 = [CABasicAnimati ...

  10. 利用 python requests完成接口文件上传

    最近在准备一个公开课,主题就是利用不同的语言和不同的工具去实现文件的上传和下载. 在利用Jmeter去实现功能的时候,以及利用loadrunner去写脚本的时候,都很顺利,没有任何问题,当我尝试用Py ...