完全使用css编写复选框
在日常的项目中,出现复选框或者单选框,应该都属于常见需求了,最开始阶段,一般只有两种可能性:
一、完全使用 <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编写复选框的更多相关文章
- css写复选框
前面讲过<完全使用css编写复选框>,后来在深入学习sass过程中,发现:这种写法虽然也能达到目的,但是稍嫌复杂了一点.这里介绍一种可以说更简单一点的方法,其实也就是html结构更简单一点 ...
- CSS 美化复选框 - 无图片方式
今天和大家分享一个不使用图片美化复选框的方式.来看下效果图吧,如下是3种不同状态下的效果: 一. Html结构 <div class="check-wrap"> < ...
- 纯css美化复选框,单选框,滑动条(range)
<div class="box"> <!-- 借鉴地址:http://www.cnblogs.com/xiaoxianweb/p/5465607.html --& ...
- 纯css修改复选框默认样式
input[type='checkbox']{ width: 20px; height: 20px; background-color: #fff; -webkit-appearance:none; ...
- 纯css3单选框/复选框美化样式代码
纯CSS 单/复选框 美化请选择iPhone 型号 iPhone 6s iPhone 6s Plus iPhone 7 iPhone 7 Plus 选择兴趣爱好 女 绘画 摄影 骑行 原理在这 ...
- Django项目:CRM(客户关系管理系统)--35--27PerfectCRM实现King_admin编辑复选框
#admin.py # ————————01PerfectCRM基本配置ADMIN———————— from django.contrib import admin # Register your m ...
- CSS学习笔记三:自定义单选框,复选框,开关
一点一点学习CCS,这次学习了如何自定义单选框,复选框以及开关. 一.单选框 1.先写好body里面的样式,先写几个框 <body> <div class="radio-1 ...
- [CSS]复选框单选框与文字对齐问题的研究与解决.
前言:今天碰到的这个问题, 恰好找到一个很好的博文, 在这里转载过来 学习下. 原文地址:复选框单选框与文字对齐问题的研究与解决. 目前中文网站上面的文字,就我的个人感觉而言,绝大多数网站的主流文字大 ...
- 转 纯CSS设置Checkbox复选框控件的样式
Checkbox复选框是一个可能每一个网站都在使用的HTML元素,但大多数人并不给它们设置样式,所以在绝大多数网站它们看起来是一样的.为什么不把你的网站中的Checkbox设置一个与众不同的样式,甚至 ...
随机推荐
- 维护贴--验证可用--mysql给root开启远程访问权限,修改root密码(转)
1.MySql-Server 出于安全方面考虑只允许本机(localhost, 127.0.0.1)来连接访问. 这对于 Web-Server 与 MySql-Server 都在同一台服务器上的网站架 ...
- LOJ 2339 「WC2018」通道——边分治+虚树
题目:https://loj.ac/problem/2339 两棵树的话,可以用 CTSC2018 暴力写挂的方法,边分治+虚树.O(nlogn). 考虑怎么在这个方法上再加一棵树.发现很难弄. 看了 ...
- Android 单元测试实践
1. 在Android Studio创建工程 工程名称 AndroidUnitTest 2. 创建测试类CommonUtil 在类中加入sum和multiply方法 在CommonUtil类中右击 ...
- C++ Builder使用VC DLL
好久没用BCB了,真的有些陌生了,当然个烂笔头吧. 1 先 implib c:\xxx.lib c:\xxx.dll 生成lib文件 2 #pragma comment(lib,"xxx.l ...
- oracle--分组后获取每组数据第一条数据
SELECT * FROM (SELECT ROW_NUMBER() OVER(PARTITION BY cc.queuename ORDER BY cc.enroldate DESC) rn, cc ...
- tomcat整体架构
1.背景 Tomcat作为JavaWeb领域的Web容器,目前在我们淘宝也使用的也非常广泛,现在基本上所有线上业务系统都是部署在Tomcat上.为了对平时开发的Web系统有更深入的理解以及出于好奇心对 ...
- JS和AS交互
这个话题在网上应该说很好找,有很多这方面的资料.比者也看过一些,不过大部分都是AS2与JS进行交互.很少提到AS3,即使有,也让人感觉浅尝辄止.很多东西并没有介绍的太清楚.所有笔者萌生了写这样一篇教程 ...
- Lucene 4.0 正式版发布,亮点特性中文解读[转]
http://blog.csdn.net/accesine960/article/details/8066877 2012年10月12日,Lucene 4.0正式发布了(点击这里下载最新版),这个版本 ...
- jython笔记
这篇笔记主要记录了我使用jython的一些问题点: 首先,jython是一个Java写的用来解析python语言的工具,他可以做到运行环境中没有python也可以使用python. jython采用的 ...
- 生成器&迭代器,模块
列表生成式 将列表data=[1,2,3]里的元素都乘2 方法一 data=[1,2,3] for index,i in enumerate(data): data[index] *=2 print( ...