我们都知道 checkbox 标签默认样式 实在是太low了,故对CheckBox美化很有必要。

现提供两种方式对其进行美化。

方法一

<div class="switch-wrap active">
<span></span>
</div>
.switch-wrap{
position: relative;
display: inline-block;
width: 52px;
height: 32px;
border: 1px solid #DFDFDF;
outline: none;
border-radius: 16px;
box-sizing: border-box;
background: #FFFFFF;
cursor: pointer;
transition: border-color .3s,background-color .3s;
vertical-align: middle;
}
.switch-wrap span{
position: absolute;
top:;
left:;
transition: transform 0.3s;
width: 30px;
height: 30px;
border-radius: 50%;
box-shadow: 0 1px 3px rgba(0,0,0,0.4);
background-color: #fff;
}
.switch-wrap.active{
border-color: #33DB70;
background-color: #33DB70;
}
.switch-wrap.active span{
transform: translateX(20px);
}

控制切换通过添加类名 active 来控制

相关jQuery代码为

$(".switch-wrap").click(function(){
if($(this).hasClass("active")){
$(this).removeClass("active");
}else{
$(this).addClass("active");
}
})

预览地址:https://zuobaiquan.github.io/css3/纯css实现checkbox开关切换按钮/01/index.html

源码地址 https://github.com/zuobaiquan/css3/tree/master/纯css实现checkbox开关切换按钮/01

方法二

当点击 label ,光标会根据for 属性指向checkbox中的 id

<div class='switch-wrap'>
<input type='checkbox' id= 'switch'>
<label for='switch'></label>
</div>
.switch-wrap input[type=checkbox]{
height: 0px;
width: 0px;
visibility: hidden;
margin:;
padding:;
}
.switch-wrap label{
display: inline-block;
width: 52px;
height: 32px;
border: 1px solid #DFDFDF;
outline: none;
border-radius: 16px;
box-sizing: border-box;
background: #FFFFFF;
cursor: pointer;
transition: border-color .3s,background-color .3s;
vertical-align: middle;
position: relative;
}
.switch-wrap label::before {
content: '';
position: absolute;
top:;
left:;
transition: transform 0.3s;
width: 30px;
height: 30px;
border-radius: 50%;
box-shadow: 0 1px 3px rgba(0,0,0,0.4);
background-color: #fff;
}
.switch-wrap input:checked + label {
background: #33DB70;
}
.switch-wrap input:checked + label:before {
transform: translateX(20px);
}

这里纯粹的是css控制开关切换。无相关的js逻辑代码

预览地址:https://zuobaiquan.github.io/css3/纯css实现checkbox开关切换按钮/02/index.html

源码地址 https://github.com/zuobaiquan/css3/tree/master/纯css实现checkbox开关切换按钮/02

总结

方法一利用js控制开关逻辑。通过类名active来实现开关切换。方法二利用checkbox点击来控制开关切换。通过label指向 checkbox的id来控制。其缺点:id具有唯一性;与后端逻辑交互较难控制开关状态。故方法一可取。

纯css实现checkbox开关切换按钮的更多相关文章

  1. 尝试用React写几个通用组件 - 带搜索功能的下拉列表,开关切换按钮,弹出框

    尝试用React写几个通用组件 - 带搜索功能的下拉列表,开关切换按钮,弹出框 近期正在逐步摸索学习React的用法,尝试着写几个通用型的组件,整体项目还是根据webpack+react+css-me ...

  2. 利用target的特性,可以实现纯css的tab效果切换

    基础知识: :target起作用的是href连接到的位置 如 <a href="#tab1">tab1</a> <div id="tab1& ...

  3. 纯CSS实现tab选项卡切换

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta cont ...

  4. 用CSS美化checkbox复选按钮和raido单选按钮-适用于移动端

    最终效果: 实现方法 index.html: <!DOCTYPE html> <html> <head> <title></title> & ...

  5. 利用纯CSS美化checkbox和radio和滑动按钮的实现

    W3C提供的CheckBox和radio的原始样式非常的丑,而且在不同的额浏览器表现还不一样,使用常规的方法添加样式没法进行修改样式 一, 单选按钮 <html> <head> ...

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

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

  7. 【转】纯CSS设置Checkbox复选框控件的样式

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

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

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

  9. 纯CSS修改checkbox复选框样式-02

    我有用过这个纯修改input属性的 本人修改后的代码和效果图(修的不好), 这个是改动最简单的: css代码 input[type=checkbox]{ visibility: hidden; } i ...

随机推荐

  1. MongoDB 如何实现备份压缩

    背景及原理 数据库的备份是灾难恢复的最后一道屏障,不管什么类型的数据库都需要设置数据库备份,MongoDB也不例外.MongoDB 3.0 后 ,数据库可以采用Wiredtiger存储引擎后(3.2 ...

  2. HybridStart发布v1.0测试版

    HybridStart是一款多webview模式的混合应用前端开发框架,本来只是作者自用的一套混合应用开发模板,为了进一步提高混合应用开发效率,近期着重在框架高通用性和易用性方面做了较大改进,比如将U ...

  3. Python开发【第三篇】基本数据类型

    整型 int __author__ = 'Tang' # 将字符串转换为数字 a = " b = int(a) # 前面是0的数转换,默认base按照十进制 a = " b = i ...

  4. 数据可视化的开源方案: Superset vs Redash vs Metabase (二)

    在上篇结尾处我提到“如果现在让我重新选择,我会使用哪个可视化工具?”我的答案是 Redash,原因主要不是功能层面,而是技术层面.本篇就从项目关注度与活跃度,项目的技术架构,源代码的规模与质量,这三个 ...

  5. Oracle 执行计划(三)-------表连接方式

    SQL FOR TESTING: create table qcb_student_test( student_id number, student_name varchar2(20), studen ...

  6. Python学习--Python运算符

    什么是运算符? 举个简单的例子 4 + 5 = 9 . 例子中,4 和 5 被称为操作数,"+" 称为运算符. Python语言支持以下类型的运算符: 算数运算符 比较(关系)运算 ...

  7. 《通过C#学Proto.Actor模型》之Mailbox

    邮箱是Actor模型的一个重要组成部分,负责接收发过来的消息,并保存起来,等待Actor处理.邮箱中维护着两种队列,一种是存系统消息,另一个是存用户消息,系统省是指Started,Stoping,St ...

  8. C语言的3种参数传递方式

    参数传递,是在程序运行过程中,实际参数就会将参数值传递给相应的形式参数,然后在函数中实现对数据处理和返回的过程,方法有3种方式 值传递 地址传递 引用传递 tips: 被调用函数的形参只有函数被调用时 ...

  9. Codeforces Global Round 2 Solution

    这场题目设置有点问题啊,难度:Div.2 A->Div.2 B->Div.2 D->Div.2 C->Div.2 D->Div.1 D-> Div.1 E-> ...

  10. 基于HTML5 的互联网+地铁行业

    前言 近几年,互联网与交通运输的融合,改变了交易模式,影响着运输组织和经营方式,改变了运输主体的市场结构.模糊了运营与非营运的界限,也更好的实现了交通资源的集约共享,同时使得更多依靠外力和企业推动交通 ...