网站首页 > 技术文章 正文
前言
在之前的一篇文章《默认的input标签太丑?教你如何使用CSS写出带动画的样式》中有讲过如何实现一个漂亮的input标签样式。
既然已经折腾了,今天这篇文章我们就继续折腾,看看如何通过CSS3实现一个带动画的checkbox样式?
CSS3
感兴趣的可以自行去github上看源文件,地址如下:
https://github.com/zhouxiongking/article-pages/blob/master/articles/beautifulCheckbox/beautifulCheckbox.html
checkbox
checkbox作为多选框,在form表单中的使用频率是非常高的,例如问卷调查的多选题,个人兴趣爱好的选择时都会用到多选框。
而浏览器默认的checkbox样式都很丑,看起来就是一个小小的方框,虽然Bootstrap已经有好看的checkbox样式,但是它不支持动画,在交互上仍然存在缺陷,所以我们就试图自己写出一个带动画的checkbox效果。
首先我们来看看checkbox的动态效果图(中间的黑色圆圈实际为录制GIF图时产生的,请忽略)
checkbox效果图
具体组成
接下来我们具体分析下页面的元素组成,主要包括以下部分。
默认的checkbox标签,将其display设置为none,隐藏起来。
label标签,表现为实际显示的动态选中和未选中效果。
我们需要达到的效果是,在未选中checkbox时,默认为灰色的边框,白色的背景;在选中checkbox时,改变背景色,出现白色的打勾动画效果。
代码组成
在这部分,我们来具体分析下页面的代码组成。
HTML
首先是页面的HTML部分代码,如上一部分所示,页面其实只有两个元素组成,这两个元素放在一个容器下,故HTML代码如下所示。
HTML部分代码
CSS
我们来看看CSS部分的代码,因为CSS部分代码比较多,我们一一来分析。
首先是外层container的样式,同时对页面的html和body也做一些简单处理,代码如下所示。
container样式
其次是checkbox标签的样式,因为原生的checkbox除了在传输数据时有用处,在页面呈现上并没有作用,故设置display:none;将其隐藏。
checkbox样式
然后是最重要的label部分,在未点击之前label呈现一个正方形,有基本的样式。
基本样式
在点击方形框后,出现的对勾是通过伪元素::before和::after实现的,对勾实际为两个矩形拼接而成,左侧的矩形用::after元素表示,右侧的矩形用::before元素表示。两者的通用样式通过如下代码实现。
伪元素实现
然后是针对::before和::after所特有的样式,因为两者的位置和旋转的角度不同,代码也会出现差异。
特有样式
然后是定义的打钩的动画效果,这里使用keyframes关键字定义,考虑到浏览器兼容性,定义的动画具有不同的前缀。定义的动画也包括两部分,首先是右侧的矩形动画效果。
右侧矩形动画效果
然后是左侧矩形的动画效果,同样考虑到浏览器的兼容性,样式代码如下。
左侧矩形动画
至此,所有代码都已讲解完毕,如果运行之后就会看到文章开始的动画效果。
结束语
本篇文章主要讲的是如何使用自定义的动画完成checkbox效果,感兴趣的可以直接去github上看源文件代码,后续会写一个跟开关switch有关的文章,敬请期待~
猜你喜欢
- 2024-10-09 领导让设计排行榜页面,给他18种样式,干就完了。
- 2024-10-09 最佳Icon图标库推荐,收藏等于学会
- 2024-10-09 开源组件库,将 LayUI 带入到 WPF
- 2024-10-09 前端:从零实现一款可视化图片编辑器
- 2024-10-09 默认的input标签太丑?教你如何使用CSS写出带动画的样式
- 2024-10-09 ztext - 简单几行代码创建酷炫3D特效文字的开源JS库
- 2024-10-09 IconPark——比肩阿里Iconfont图库的前端Icon库
- 2024-10-09 这些前端样式简直太牛了,不得不佩服设计师的脑洞
- 2024-10-09 让微信小程序和页面界面 UI 统一:WeUI 前端样式库
- 2024-10-09 比较好用的前端库 比较好用的前端库是什么
你 发表评论:
欢迎- 590℃几个Oracle空值处理函数 oracle处理null值的函数
- 583℃Oracle分析函数之Lag和Lead()使用
- 570℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 568℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 563℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 555℃【数据统计分析】详解Oracle分组函数之CUBE
- 541℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 536℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端懒加载 (49)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)