使用css3美化复选框
声明:文章为转载(略改动),点击查看原文。如有侵权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美化复选框的更多相关文章
- css3美化复选框checkbox
两种美化效果如下图: 代码(html) <div id="main"> <h2 class="top_title">使用CSS3美化复 ...
- 使用CSS3美化复选框checkbox
我们知道HTML默认的复选框样式十分简陋,而以图片代替复选框的美化方式会给页面表单的处理带来麻烦,那么本文将结合实例带您一起了解一下使用CSS3将复选框checkbox进行样式美化,并且带上超酷的滑动 ...
- 基于CSS3自定义美化复选框Checkbox组合
今天我们要来分享一组非常漂亮的CSS3自定义复选框checkbox,每一个checkbox都有其各自的特点.有几款checkbox在选中的情况下还会出现动画效果,非常不错的CSS3自定义美化check ...
- 8个非常个性化的CSS3单/复选框
单选框和复选框在网页表单中应用十分广泛,但是浏览器默认自带的单选框和复选框样式不仅不统一,而且大多都比较简单丑陋.本文给大家介绍了一些基于CSS3的个性化单选框和复选框,一些选中动画是基于jQuery ...
- CSS 美化复选框 - 无图片方式
今天和大家分享一个不使用图片美化复选框的方式.来看下效果图吧,如下是3种不同状态下的效果: 一. Html结构 <div class="check-wrap"> < ...
- 纯css3实现美化复选框和手风琴效果(详细)
关键技术点和原理: 原理就是把 checkbox或 radio 给隐藏掉 ,然后给选框 绑定一个label标签. 然后用label标签作为容器,在里面放一个:before或一个after 用bef ...
- 纯css美化复选框,单选框,滑动条(range)
<div class="box"> <!-- 借鉴地址:http://www.cnblogs.com/xiaoxianweb/p/5465607.html --& ...
- 10个HTML5美化版复选框和单选框
单选框Radiobox和复选框checkbox在网页中也十分常见,虽然它没有按钮的交互性强,但是如果能把它们像按钮那样美化一下,那也是非常不错的.本文收集了10个相对比较漂亮的美化版单选框和复选框,希 ...
- radio(单选框)/checkbox(复选框) 美化
由于某种原因,可能需要对单选框(radio)或复选框(checkbox)进行美化,那么直接修改样式是行不通,要实现就需要添加js,以下js依赖于jquery radio.js: function ra ...
随机推荐
- Java_myBatis_XML代理_延迟加载
使用mybatis的延迟加载,需要两个步骤: 1.在全局配置文件中添加一下语句(lazyLoadingEnabled默认为false,aggressiveLazyLoading默认为true) < ...
- Hadoop集群-HDFS集群中大数据运维常用的命令总结
Hadoop集群-HDFS集群中大数据运维常用的命令总结 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客会简单涉及到滚动编辑,融合镜像文件,目录的空间配额等运维操作简介.话 ...
- Python基础【day02】:元组和购物车练习的知识点
一.元组 元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表 用途:一般情况下用于自己写的程序能存下数据,但是又希望这些数据不会被改变,比如:数据库连接信息等 1.元 ...
- javascript 小清新颜色翻页效果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Linux记录-集群时间同步解决方案
1.各个主机安装ntpdate 2.编写shell #!/bin/sh array=("root@master" "root@slave002" "r ...
- ASP.Net WebAPI中添加helppage帮助页面
一.自动创建带帮助的WebAPI 1.首先创建项目的时候选择WebAPI,如下图所示,生成的项目会自动生成帮助文档. 2.设置调用XML文档的代码 3.设置项目注释XML文档生成目录,项目——属性—— ...
- luogu 4401 矿工配餐 多维dp
五维dp,记忆化搜索会MLE超内存,所以用滚动数组,十分经典 五维dp #include <bits/stdc++.h> using namespace std; ; ][][][],la ...
- Tessaract 源码分析(转)
源码分析 Page Layout 分析步骤 二值化算法: OTSU调用栈:main[api/tesseractmain.cpp] -> TessBaseAPI::ProcessPages[api ...
- QPushButton按钮
需要 from PyQt5.QtWidgets import QPushButton继承 QAbstractButton 创建按钮控件:QPushButton() 创建一个无父控件的按钮控件QPush ...
- luogu P2502 [HAOI2006]旅行
传送门 边数只有5000,可以考虑\(O(m^2)\)算法,即把所有边按边权升序排序,然后依次枚举每条边\(i\),从这条边开始依次加边,加到起点和终点在一个连通块为止.这个过程可以用并查集维护.那么 ...