我们都知道 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. USGS-EROS项目espa-surface-reflectance中的Landsat8 大气校正LaSRC Version 1.3.0模块利用vs2010编译出windows64位版本(四)

    ,支持一些关键问题: 1    数据初始化问题.该问题是指在linux环境下编程标准c并编译,用户定义的变量默认初始值是0,但在windows 64 win7环境中,变量默认初始值是负值极小.... ...

  2. 或许,挂掉的点总是出人意料(hw其实蛮有好感的公司)

    1:问了有没有考研的打算,为什么: ` 实验室指导自己的两个学长, 他们两个都是不考研党派,当然两个学长本科都进入了不错的公司hw,xm,耳濡目染就自己也就不想去考研了: 跟一些已经工作的程序员聊天, ...

  3. vs2015启动崩溃,wpfgfx_v0400.dll加载D3DCompiler_47.dll失败

    有一段时间没有用vs2015,今天一启动就crash,尝试了以下办法: 1. 卸载掉这段时间安装的一些软件和vs插件 2. 修复安装 3. 卸载.重新安装vs2015 sp2版本 4. devenv. ...

  4. bug管理工具之禅道的测试模块的使用

    https://www.cnblogs.com/evablogs/p/6785017.html 角色:产品经理PO,项目经理PM,开发,测试 测试任务: bug: 1.维护bug视图模块:[测试]-[ ...

  5. LeetCode算法题-Longest Univalue Path(Java实现)

    这是悦乐书的第290次更新,第308篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第158题(顺位题号是687).给定二叉树,找到路径中每个节点具有相同值的最长路径的长度 ...

  6. 【English Email】CIP payouts now in Workday

    simplification简化的[ˌsɪmplɪfɪˈkeɪʃn] quota配额[ˈkwoʊtə]  regional区域的[ˈriːdʒənl]  mechanics技工[məˈkænɪks]  ...

  7. Enterprise Architect 时序图

    添加时序图 1,在类图下面新建包 添加sequence时序图 点击流程控制,可以打开流程控制设计界面 我选择的是Lifeline线,你可以选择都差不多. 点击其中一条liftline连到其他上面 双击 ...

  8. springboot中配置过滤器以及可能出现的问题

    在springboot添加过滤器有两种方式: 1.通过创建FilterRegistrationBean的方式(建议使用此种方式,统一管理,且通过注解的方式若不是本地调试,如果在filter中需要增加c ...

  9. Linux内存管理 (3)内核内存的布局图

    专题:Linux内存管理专题 关键词:内核内存布局图.lowmem线性映射区.kernel image.ZONE_NORMAL.ZONE_HIGHMEM.swapper_pg_dir.fixmap.v ...

  10. Codeforces Round #551 (Div. 2) EF Solution

    E. Serval and Snake 对于一个矩形,如果蛇的一条边与它相交,就意味着这条蛇从矩形内穿到矩形外,或者从矩形外穿到矩形内.所以如果某个矩形的答案为偶数,意味着蛇的头尾在矩形的同一侧(内或 ...