在日常的项目中,出现复选框或者单选框,应该都属于常见需求了,最开始阶段,一般只有两种可能性:

一、完全使用  <input type="checkbox" />或者<input type="radio" />完成复选框和单选框,如此,就必须接受不同的浏览器对input[type=checkbox]或者input[type=radio]的默认定义,基本上没办法对其默认样式进行修改。

二、使用js模拟,使用任意的html标签,如span,定义一个默认样式和选中之后的样式,然后点击之后,判断其是选中还是取消选中,在这种情况下,就得对单选和复选写不同的js,虽说这一小段js并不困难,但是在项目中多处使用复选和单选的时候,终归是比较繁琐的。

css3出现以后,在能够兼容css3设备或者浏览器上,就出现了第三种可能性,使用css3编写自定义的单选框或者复选框,而且不涉及任何一段js代码。

 类似于如此,不适用任何js的自定义一个选中状态的复选框,是重构同学心中一直以来的一个梗吧。

<label class="multiple">
<input type="checkbox"><span></span>
</label>

 html其实很简单,就是在<input type="checkbox" />后面新增一个可以自定义样式的标签span

.multiple input[type=checkbox] {
visibility: hidden;
position: absolute;
z-index: 20;
left: 0;
}
.multiple input[type=checkbox] + span {
display: inline-block;
vertical-align: middle;
width: 16px;
height: 16px;
border: solid 1px #898989;
background-color: #f8f8f8;
border-radius: 2px;
margin-right: 10px;
position: relative;
}
.multiple input[type=checkbox]:checked + span:before {
content: "";
position: absolute;
left: -2px; right: -2px;
top: -2px; bottom: -2px;
z-index: 3;
background: url(../images//selected.png) no-repeat center center;
}

 稍微解释几个关键点:

  visibility: hidden;  功能类似于display:none;也是对元素进行隐藏,区别于display:none;的地方在于,使用visibility: hidden; 隐藏的元素,是占位的。可以在网上查一下关于隐藏元素的几种方式,应该会有所收获的。不知道为什么,使用这种方式隐藏的input[type=checkbox],在IE8上没办法点击到。

  input[type=checkbox] + span     +选择符,是css2提供的选择符,表示选择input[type=checkbox]后面的那个span标签。

  input[type=checkbox]:checked + span        表示被选中的checkbox后面的span,这就出现了自定义的可能性。 伪类:checked属于css3选择器,所以IE8及以下兼容不了。

  

 

完全使用css编写复选框的更多相关文章

  1. css写复选框

    前面讲过<完全使用css编写复选框>,后来在深入学习sass过程中,发现:这种写法虽然也能达到目的,但是稍嫌复杂了一点.这里介绍一种可以说更简单一点的方法,其实也就是html结构更简单一点 ...

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

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

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

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

  4. 纯css修改复选框默认样式

    input[type='checkbox']{ width: 20px; height: 20px; background-color: #fff; -webkit-appearance:none; ...

  5. 纯css3单选框/复选框美化样式代码

    纯CSS 单/复选框 美化请选择iPhone 型号 iPhone 6s iPhone 6s Plus iPhone 7 iPhone 7 Plus   选择兴趣爱好 女 绘画 摄影 骑行   原理在这 ...

  6. Django项目:CRM(客户关系管理系统)--35--27PerfectCRM实现King_admin编辑复选框

    #admin.py # ————————01PerfectCRM基本配置ADMIN———————— from django.contrib import admin # Register your m ...

  7. CSS学习笔记三:自定义单选框,复选框,开关

    一点一点学习CCS,这次学习了如何自定义单选框,复选框以及开关. 一.单选框 1.先写好body里面的样式,先写几个框 <body> <div class="radio-1 ...

  8. [CSS]复选框单选框与文字对齐问题的研究与解决.

    前言:今天碰到的这个问题, 恰好找到一个很好的博文, 在这里转载过来 学习下. 原文地址:复选框单选框与文字对齐问题的研究与解决. 目前中文网站上面的文字,就我的个人感觉而言,绝大多数网站的主流文字大 ...

  9. 转 纯CSS设置Checkbox复选框控件的样式

    Checkbox复选框是一个可能每一个网站都在使用的HTML元素,但大多数人并不给它们设置样式,所以在绝大多数网站它们看起来是一样的.为什么不把你的网站中的Checkbox设置一个与众不同的样式,甚至 ...

随机推荐

  1. 会话状态Session

    一.会话状态Session Session用于服务器端状态管理,使用Session之后,每个客户端都可以将实际的数据保存在服务器上,对于每个客户端的数据,将会生成一个对应的唯一的key(保存在客户端) ...

  2. SQL 中的 IFNULL和NULLIF

    sql 中的IFNULL和NULLIF很容易混淆,在此记录一下. IFNULL IFNULL(expression1, expression2) 如果expression1为null, 在函数返回ex ...

  3. Linux shell脚本读取用户输入的参数

    新建一个test.sh文件 #!/bin/sh echo "1 : For Test" echo "2 : For nohup &" whiletrue ...

  4. 【java】构造函数

    什么时候自定义构造函数:当分析事物时,事物一存在就具备一些特征或者行为,那么就把这么内容定义在构造函数中 作用:对对象进行初始化,对象一建立,就会自动调用与之对应的构造函数 特点: 1.函数名和类名相 ...

  5. Node.js 0.12: 正确发送HTTP POST请求

    Node.js 0.12: 正确发送HTTP POST请求 本文针对版本:Node.js 0.12.4 之前写过一篇Node.js发送和接收HTTP的GET请求的文章,今天再写一篇,讲发送POST的请 ...

  6. Python selenium —— selenium与自动化测试成神之路

    From: https://blog.csdn.net/huilan_same/article/details/52559711 忽然想谈谈自动化的学习路径,因为发现很多人总是急于求成,不懂该如何学习 ...

  7. 结合《剑指offer(第二版)》面试题51来谈谈归并排序

    一.题目大意 给定一个数组A,对于数组A中的两个数字,如果排在前面的一个数字大于(必须大于,等于不算)后面的数字,则这两个数字组成一个逆序对.要求输出数组A中的逆序对的总数.例如,对于数组{7,5,6 ...

  8. Windows进程单实例运行

    场景         Windows进程单实例运行,如果有进程没有退出,继续等待,直到进程完全退出,才会进入下一个实例 HANDLE pHandle = NULL; do  {  pHandle = ...

  9. bzoj2909: Bipartite Numbers

    Description Bipartite Number是这样的一个正整数,他只能由两段相同的数组成,如44444411,10000000, 5555556,41,而4444114,44444则不是. ...

  10. 峰Redis学习(4)Redis 数据结构(List的操作)

    第四节:Redis 数据结构之List 类型 存储list: ArrayList使用数组方式 LinkedList使用双向链接方式   双向链接表中增加数据 双向链接表中删除数据   存储list常用 ...