之前分析了一个原生的checkbox,趁热打铁分析ionic的自带checkbox.

html

<label class="checkbox">
<input type="checkbox">check
</label>

css

- checkbox

.checkbox {
position: relative;
display: inline-block;
padding: 7px 7px;
cursor: pointer; }

定义了一个父节点。
display: inline-block;此元素会被显示为内联元素,元素前后没有换行符。
- checkbox子节点input:before

  .checkbox input:before{
display: table;
width: 100%;
height: 100%;
border-color: #ddd;
border-width: 1px;
border-style: solid;
border-radius: 28px;
background: #fff;
content: ' ';
-webkit-transition: background-color 20ms ease-in-out;
transition: background-color 20ms ease-in-out; }

display:table;让元素的子节点像table元素一样。
使用基于表格的CSS布局,使我们能够轻松定义一个单元格的边界、背景等样式,而不会产生因为使用了table那样的制表标签所导致的语义化问题。
width: 100%;height: 100%;高度宽度。

border-color: #ddd;border-width: 1px;border-style: solid;border-radius: 28px;

定义一个圆形的边框,浅灰色。
transition: background-color 20ms ease-in-out;这是一个CSS3过渡效果。即背景颜色有2ms的过度。
综上,input:before只是给了一个边框的效果。
- checkbox子节点input:after

.checkbox input:after{
-webkit-transition: opacity 0.05s ease-in-out;
transition: opacity 0.05s ease-in-out;
-webkit-transform: rotate(-45deg);
transform: rotate(-45deg);
position: absolute;
top: 33%;
left: 25%;
display: table;
width: 14px;
height: 6px;
border: 1px solid #fff;
border-top: 0;
border-right: 0;
content: ' ';
opacity: 0; }

这个就是那个checked后显示的对号
transition: opacity 0.05s ease-in-out;表示一个透明度的渐变。
ease-in-out:
ease 规定慢速开始,然后变快,然后慢速结束的过渡效果;
ease-in 规定以慢速开始的过渡效果;
ease-out 规定以慢速结束的过渡效果;
ease-in-out 规定以慢速开始和结束的过渡效果
transform: rotate(-45deg);旋转45度。
后面的其实就在弄出“对号”

checkbox子元素Input:checked:before

.checkbox input:checked:before {
background: #387ef5;
border-color: #387ef5;
border-width: 2px;
}

当checked时,Input:before的背景颜色和边框颜色都是蓝色。

checkbox子元素Input:checked:after

.checkbox input:checked:after{
opacity: 1;
}

当checked时,input:after透明度为0(显示那个“对号”).

结论

综上所述,
input:before是一个边框效果
input:after是一个“对号”效果
checked时,input:after(对号)显示,input:before(原来的灰色边框)的背景和边框都变为蓝色。

ionic的checkbox分析的更多相关文章

  1. ListView+CheckBox两种解决方式及原因分析

    近期在用ListView+CheckBox搞一个item选中的项目,我将CheckBox的focus设置为false,另我大喜的是,CheckBox居然能够选中(窃喜中),这么简单就搞定了,由于数据量 ...

  2. (转)jquery serialize表单序列化,当radio或checkbox 未选中时,没有序列化到对象中的原因分析和解决方案 - ghostsf

    相信很多人都用过jq的表单序列化serialize()方法,因为这能很方便地帮你把表单里所有的非禁用输入控件序列化为 key/value 对象,不需要你再去一个个地拼接参数了. 这是一个很好用的函数, ...

  3. ionic-CSS:ionic checkbox(复选框)

    ylbtech-ionic-CSS:ionic checkbox(复选框) 1.返回顶部 1. ionic checkbox(复选框) ionic 里面的 Checkbox 和普通的 Checkbox ...

  4. jQuery checkbox选中问题之prop与attr注意点分析

    $(function () {   // 全选   $("#btnCheckAll").bind("click", function () {     $(&q ...

  5. 微信小程序组件解读和分析:八、checkbox复选项

    checkbox复选项组件说明: checkbox是小程序表单组件中的一个组件,作用是在表单中引导用户做出选择. 要使用checkbox组件,还需要在同组中所有的checkbox标签外使用checkb ...

  6. ionic build android 报错分析

  7. 查看w3wp进程占用的内存及.NET内存泄露,死锁分析

    一 基础知识 在分析之前,先上一张图: 从上面可以看到,这个w3wp进程占用了376M内存,启动了54个线程. 在使用windbg查看之前,看到的进程含有 *32 字样,意思是在64位机器上已32位方 ...

  8. JQuery Sizzle引擎源代码分析

    最近在拜读艾伦在慕课网上写的JQuery课程,感觉在国内对JQuery代码分析透彻的人没几个能比得过艾伦.有没有吹牛?是不是我说大话了? 什么是Sizzle引擎? 我们经常使用JQuery的选择器查询 ...

  9. Ionic2系列——Ionic 2 Guide 官方文档中文版

    最近一直没更新博客,业余时间都在翻译Ionic2的文档.之前本来是想写一个入门,后来觉得干脆把官方文档翻译一下算了,因为官方文档就是最好的入门教程.后来越翻译越觉得这个事情确实比较费精力,不知道什么时 ...

随机推荐

  1. kubernetes配置后端存储 rook-ceph

    一 Rook概述 1.1 Ceph简介 Ceph是一种高度可扩展的分布式存储解决方案,提供对象.文件和块存储.在每个存储节点上,将找到Ceph存储对象的文件系统和Ceph OSD(对象存储守护程序)进 ...

  2. 01_c语言再学习_基础部分(1)

    目录: 1.编译基础 2.c语言关键字 3.c语言数据类型 4.二进制/8进制/16进制 5.计算机内存数值存储方式:sizeof/原码/反码/补码 6.c语言中的字符和字符串 7.c语言中的数组和字 ...

  3. (第一章第三部分)TensorFlow框架之会话

    系列博客链接: (一)TensorFlow框架介绍:https://www.cnblogs.com/kongweisi/p/11038395.html (二)TensorFlow框架之图与Tensor ...

  4. JZ-026-二叉搜索树与双向链表

    二叉搜索树与双向链表 题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点,只能调整树中结点指针的指向. 题目链接: 二叉搜索树与双向链表 代码 /** * ...

  5. LOTO示波器汽修专用款选型指南

    LOTO示波器汽修专用款选型指南 LOTO各种型号的示波器其实都可以用作汽车传感器信号波形的检测.汽修应用中,工程师对示波器的性能要求对于LOTO产品来说不算高. 在我们销售和技术支持的积累过程中,我 ...

  6. 如何恢复 iCloud 已删除文件

    原文链接 问题 今天在查找之前的 C++ 笔记时,突然发现之前的资料全没了,整个 Cpp 文件夹内就只剩下了三个文件,怎么形容当时的心情呢,应该说是一下就跌倒了谷底,感觉之前的心血全白费了,有种深深的 ...

  7. idea Mybatis mapper配置文件删除SQL语句背景色

    原样式: 看着很不爽 本文 idea 版本为:idea 2020.3.1,以下操作均基于此版本进行 解决办法 1.去除警告 Settings>Editor>Inspections>S ...

  8. 移动IP通信过程

    看了点资料,沿着自己的思路来整理一下计算机网络部分移动IP通信遇到的问题以及是怎样解决的.如有错误,欢迎纠正! 遇到问题,然后解决问题. 沿着这样一个思路我们可以看看移动IP通信和传统的网络通信有什么 ...

  9. 平衡树:为什么Redis内部实现用跳跃表

    摘要:Redis使用跳跃表(skiplist)作为有序集合(zset)的底层实现之一. 本文分享自华为云社区<5分钟了解Redis的内部实现跳跃表(skiplist)>,作者:万猫学社. ...

  10. dpwwn-01

    环境配置 靶机下载地址: https://download.vulnhub.com/dpwwn/dpwwn-01.zip 下载好解压打开.vmx文件即可 启动后如图: 无法直接获得靶机ip,用kali ...