Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
利用CSS3编写类似iOS中的复选框及带开关的按钮的代码_创想鸟

利用CSS3编写类似iOS中的复选框及带开关的按钮的代码

这篇文章主要介绍了使用css3编写类似ios中的复选框及带开关的按钮,需要的朋友可以参考下

checkbox多选

最近写了一个适合移动端的checkbox,如图:
2016411114913458.png (812×522)

ps:中间的勾勾是iconfont,iOS风格的。

具体的HTML:

立即学习“前端免费学习笔记(深入)”;

CSS代码(SCSS导出的,排版有些奇怪):

.mui-checkbox {     -webkit-appearance: none;     position: relative;     width: 25px;     height: 25px;     margin-right: 10px;     background-color: #FFFFFF;     border: solid 1px #d9d9d9;     border-top-left-radius: 20px;     border-top-rightright-radius: 20px;     border-bottom-left-radius: 20px;     border-bottom-rightright-radius: 20px;     background-clip: padding-box;     display: inline-block; }     .mui-checkbox:focus {       outline: 0 none;       outline-offset: -2px; }     .mui-checkbox:checked {       background-color: #18b4ed;       border: solid 1px #FFFFFF; }       .mui-checkbox:checked:before {         display: inline-block;         margin-top: 1px;         margin-left: 2px;         font-family: iconfont;         content: "e667";         color: #FFFFFF;         font-size: 18px; }     .mui-checkbox:disabled {       background-color: #d9d9d9;       border: solid 1px #d9d9d9; }       .mui-checkbox:disabled:before {         display: inline-block;         margin-top: 1px;         margin-left: 2px;         font-family: iconfont;         content: "e667";         color: #FFFFFF;         font-size: 18px; }     .mui-checkbox.checkbox-green:checked {       background-color: #5cb85c; }     .mui-checkbox.checkbox-orange:checked {       background-color: #f0ad4e; }     .mui-checkbox.checkbox-s {       width: 19px;       height: 19px; }       .mui-checkbox.checkbox-s:before {         display: inline-block;         margin-top: 1px;         margin-left: 2px;         font-family: iconfont;         content: "e667";         color: #FFFFFF;         font-size: 13px; }   .mui-checkbox-anim {     -webkit-transition: background-color ease 0.2s;             transition: background-color ease 0.2s; }

SCSS代码:

@mixin checkedCon($fs:18px) {     &:before {       display: inline-block;       margin-top: 1px;       margin-left: 2px;       font-family: iconfont;       content: "e667";       color: #FFFFFF;       font-size: $fs;     }   }   $duration: .4s;   .mui-checkbox {     -webkit-appearance: none;     position: relative;     width: 25px;     height: 25px;     margin-right: 10px;     background-color: #FFFFFF;     border: solid 1px #d9d9d9;     border-top-left-radius: 20px;     border-top-rightright-radius: 20px;     border-bottom-left-radius: 20px;     border-bottom-rightright-radius: 20px;     background-clip: padding-box;     display: inline-block;     &:focus {       outline: 0 none;       outline-offset: -2px  }     &:checked {       background-color: #18b4ed;       border: solid 1px #FFFFFF;       @include checkedCon();     }     &:disabled {       background-color: #d9d9d9;       border: solid 1px #d9d9d9;       @include checkedCon();     }     &.checkbox-green:checked {       background-color: #5cb85c;     }     &.checkbox-orange:checked {       background-color: #f0ad4e;     }     &.checkbox-s {       width: 19px;       height: 19px;       @include checkedCon(13px);     }   }   .mui-checkbox-anim{     //border等其他元素不做过渡效果,增加视觉差,更有动画效果     transition: background-color ease $duration/2;   }

带switch开关
本身我做这一个ui的目的是支持移动端的页面,而webkit上也正好支持单标记的input元素是使用伪类(:before或:after),所以我没做更多的支持和优化,我只是想尽量的保持html干净,所以没用其他元素做模拟。如果你要使用在桌面应用上,或支持其他浏览器,可以自己稍微修改一下,反正我是没测试过。

今天继续分享一个iOS风格的switch开关按钮,样子也非常常见,如图:
2016411115110047.png (818×350)

主要是使用了来模拟实现,具体的HTML:

在实际的使用中后来又增加了两个过渡效果,分别加 mui-switch-animbg和mui-switch-anim 类即可,具体效果查看下面的demo页面。

CSS代码(SCSS导出的,排版有些奇怪):

.mui-switch {     width: 52px;     height: 31px;     position: relative;     border: 1px solid #dfdfdf;     background-color: #fdfdfd;     box-shadow: #dfdfdf 0 0 0 0 inset;     border-radius: 20px;     border-top-left-radius: 20px;     border-top-rightright-radius: 20px;     border-bottom-left-radius: 20px;     border-bottom-rightright-radius: 20px;     background-clip: content-box;     display: inline-block;     -webkit-appearance: none;     user-select: none;     outline: none; }     .mui-switch:before {       content: '';       width: 29px;       height: 29px;       position: absolute;       top: 0px;       left: 0;       border-radius: 20px;       border-top-left-radius: 20px;       border-top-rightright-radius: 20px;       border-bottom-left-radius: 20px;       border-bottom-rightright-radius: 20px;       background-color: #fff;       box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); }     .mui-switch:checked {       border-color: #64bd63;       box-shadow: #64bd63 0 0 0 16px inset;       background-color: #64bd63; }       .mui-switch:checked:before {         left: 21px; }     .mui-switch.mui-switch-animbg {       transition: background-color ease 0.4s; }       .mui-switch.mui-switch-animbg:before {         transition: left 0.3s; }       .mui-switch.mui-switch-animbg:checked {         box-shadow: #dfdfdf 0 0 0 0 inset;         background-color: #64bd63;         transition: border-color 0.4s, background-color ease 0.4s; }         .mui-switch.mui-switch-animbg:checked:before {           transition: left 0.3s; }     .mui-switch.mui-switch-anim {       transition: border cubic-bezier(0, 0, 0, 1) 0.4s, box-shadow cubic-bezier(0, 0, 0, 1) 0.4s; }       .mui-switch.mui-switch-anim:before {         transition: left 0.3s; }       .mui-switch.mui-switch-anim:checked {         box-shadow: #64bd63 0 0 0 16px inset;         background-color: #64bd63;         transition: border ease 0.4s, box-shadow ease 0.4s, background-color ease 1.2s; }         .mui-switch.mui-switch-anim:checked:before {           transition: left 0.3s; }   /*# sourceMappingURL=mui-switch.css.map */

SCSS代码:

@mixin borderRadius($radius:20px) {     border-radius: $radius;     border-top-left-radius: $radius;     border-top-rightright-radius: $radius;     border-bottom-left-radius: $radius;     border-bottom-rightright-radius: $radius;   }   $duration: .4s;   $checkedColor: #64bd63;   .mui-switch {     width: 52px;     height: 31px;     position: relative;     border: 1px solid #dfdfdf;     background-color: #fdfdfd;     box-shadow: #dfdfdf 0 0 0 0 inset;     @include borderRadius();     background-clip: content-box;     display: inline-block;     -webkit-appearance: none;     user-select: none;     outline: none;     &:before {       content: '';       width: 29px;       height: 29px;       position: absolute;       top: 0px;       left: 0;       @include borderRadius();       background-color: #fff;       box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);     }     &:checked {       border-color: $checkedColor;       box-shadow: $checkedColor 0 0 0 16px inset;       background-color: $checkedColor;       &:before {         left: 21px;       }     }     &.mui-switch-animbg {       transition: background-color ease $duration;       &:before {         transition: left 0.3s;       }       &:checked {         box-shadow: #dfdfdf 0 0 0 0 inset;         background-color: $checkedColor;         transition: border-color $duration, background-color ease $duration;         &:before {           transition: left 0.3s;         }       }     }     &.mui-switch-anim {       transition: border cubic-bezier(0, 0, 0, 1) $duration, box-shadow cubic-bezier(0, 0, 0, 1) $duration;       &:before {         transition: left 0.3s;       }       &:checked {         box-shadow: $checkedColor 0 0 0 16px inset;         background-color: $checkedColor;         transition: border ease $duration, box-shadow ease $duration, background-color ease $duration*3;         &:before {           transition: left 0.3s;         }       }     }   }

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

css3的transform中scale缩放的分析

关于CSS中list-style修改列表属性控制li标签样式的问题

关于CSS文本超出div或者span时用省略号代替的代码

以上就是利用CSS3编写类似iOS中的复选框及带开关的按钮的代码的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1610025.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
如何用css3绘制一个圆的loading转圈动画
上一篇 2025年12月24日 01:10:49
下一篇 2025年12月24日 01:10:55

相关推荐

  • php-gd怎样处理图像异常_php-gd图像处理错误捕获

    PHP-GD 图像处理需主动捕获警告、检查返回值、预验证文件类型并调整内存限制,通过错误处理器和异常封装避免崩溃。 PHP-GD 库在处理图像时,可能会因为文件格式错误、内存不足、不支持的图像类型或函数调用不当等原因导致异常。由于 GD 函数大多不会抛出异常,而是返回 false 或产生警告,因此需…

    2026年9月24日
    200
  • 如何在Linux中切换用户身份?

    Linux中切换用户主要用su和sudo命令;2. su切换用户需密码,su -可加载完整环境;3. sudo允许授权用户以root等身份执行命令而无需对方密码;4. 推荐使用sudo -i或sudo su -切换到root;5. 普通用户需加入sudo组或配置/etc/sudoers文件;6. 编…

    2026年9月24日
    200
  • PHP如何批量处理图片_PHP实现多张图片自动化处理

    批量处理图片时需循环读取并逐个处理,核心是使用scandir()获取文件列表,通过GD库或Imagick处理图像,每处理完一张用imagedestroy()释放内存以避免内存溢出;为提升效率可分批处理、优化算法、使用多进程或异步队列,并选用Intervention Image等高效第三方库。 批量处…

    2026年9月24日
    200
  • 如何监控Linux命令执行时间 time命令性能分析技巧

    如何监控Linux命令执行时间 time命令性能分析技巧如何监控Linux命令执行时间 time命令性能分析技巧如何监控Linux命令执行时间 time命令性能分析技巧如何监控Linux命令执行时间 time命令性能分析技巧

    要查看linux命令执行耗时及分析程序性能,可使用time命令。1. time命令基础用法:在命令前加time,输出包含real(实际时间)、user(用户态时间)、sys(内核态时间),用于初步判断性能瓶颈。2. 精确计时:使用/usr/bin/time获取更详细信息,如内存使用、上下文切换、退出…

    2026年9月24日 • 用户投稿
    800
  • 从推理到恋爱?《终天教团》小高和刚等主创专访揭秘

    从推理到恋爱?《终天教团》小高和刚等主创专访揭秘从推理到恋爱?《终天教团》小高和刚等主创专访揭秘从推理到恋爱?《终天教团》小高和刚等主创专访揭秘从推理到恋爱?《终天教团》小高和刚等主创专访揭秘

    由小高和刚、中泽工与高田雅史共同打造的多类型悬疑游戏《终天教团》已于本月早些时候正式登陆switch与steam平台。近日,主创团队接受了深入采访,分享了游戏背后的创作理念,一起来了解详情! 小高和刚透露,最初选择宗教邪教作为主题,是希望以独立游戏的形式探讨一些在大型项目中难以触及的边缘议题,因此聚…

    2026年9月24日 • 用户投稿
    100
  • edge浏览器无法安装来自Chrome商店的扩展怎么办_edge浏览器Chrome扩展安装问题解决

    首先启用Edge中“允许来自其他应用商店的扩展”选项,然后通过开启开发者模式手动加载CRX文件,或直接在Edge中打开Chrome商店链接利用内置支持安装,必要时可修改User-Agent模拟Chrome浏览器访问下载。 如果您尝试在Edge浏览器中安装来自Chrome商店的扩展,但系统提示不支持或…

    2026年9月24日
    300
  • MAC怎么把App的语言单独设置成中文或英文_MAC单独设置App语言方法

    可通过终端命令临时设置或修改应用Info.plist文件永久更改macOS单个应用语言,支持中英文切换,不影响系统语言。 如果您希望在 macOS 系统中将某个应用程序的语言单独设置为中文或英文,而不影响系统整体语言,可以通过修改应用的本地化偏好来实现。此方法适用于支持多语言且遵循 macOS 本地…

    2026年9月24日
    000
  • VSCode如何实现AI代码反混淆 VSCode智能分析混淆代码的技巧

    vscode没有一键ai反混淆功能,但可通过智能扩展、调试器、ast查看器、代码格式化工具及外部ai工具集成来辅助分析和逐步还原混淆代码;2. 利用eslint、prettier等扩展提升代码可读性,通过“重命名符号”“转到定义”“查找引用”等功能追踪变量和函数流向,结合多光标编辑和代码片段进行手动…

    2026年9月24日
    200
  • 《最终幻想7:重制版Intergrade》即将登新平台!官方介绍玩家女神蒂法爱丽丝

    《最终幻想7:重制版Intergrade》即将登新平台!官方介绍玩家女神蒂法爱丽丝《最终幻想7:重制版Intergrade》即将登新平台!官方介绍玩家女神蒂法爱丽丝《最终幻想7:重制版Intergrade》即将登新平台!官方介绍玩家女神蒂法爱丽丝《最终幻想7:重制版Intergrade》即将登新平台!官方介绍玩家女神蒂法爱丽丝

    《最终幻想7重制版intergrade》现已开启在 nintendo switch 2、xbox series x|s 及 windows 平台的预购通道。 近日,官方通过游戏社交媒体账号发布了核心角色的相关介绍,帮助新玩家更顺利地融入游戏世界,深入了解剧情脉络。 主要角色一览: 克劳德(配音:樱井…

    2026年9月23日 • 用户投稿
    100
  • Android自定义开关UI实现教程:打造独特交互体验

    本教程旨在指导开发者如何在Android应用中实现高度定制化的开关UI,摆脱原生组件的限制。我们将探讨两种主要方法:一是利用功能丰富的第三方库快速构建复杂动画效果的开关;二是通过XML Drawable Selector自定义原生ToggleButton的外观,实现简洁高效的视觉定制。 在andro…

    2026年9月23日
    400
  • Java中使用栈验证JSON字符串结构:深入理解与实践

    本文探讨了在Java中利用栈验证JSON字符串结构的核心原理与常见陷阱。我们将分析一种初始实现中处理引号、转义字符及字符串内部结构字符的不足,并提供一个更健壮的栈基方法,以准确判断JSON的括号、方括号和引号是否平衡,同时纠正关于不完整JSON片段有效性的常见误解。 1. JSON结构与验证的重要性…

    2026年9月23日
    100
  • NS2版《无主之地4》突遭延期!预购将取消

    《无主之地4》现可提前购入,使用金币叠加限时优惠券后,标准版仅需244.5元(共节省 ¥53.5);超级豪华版为457.4元(总计优惠 ¥100.6)。 原计划于10月3日发布的《无主之地4》Nintendo Switch 2版本已确认延期。Gearbox Entertainment最新发布公告称,…

    2026年9月23日
    200
  • Java中基于栈验证JSON字符串结构有效性的方法

    本文探讨了在Java中利用栈(Stack)数据结构验证JSON字符串结构有效性的方法。我们将分析一个常见的基于栈的实现示例,指出其在处理字符串内部字符、引号平衡以及转义字符方面的潜在缺陷。文章将提供一个改进的解决方案,并强调此方法主要用于结构匹配,而非完整的JSON语法验证,同时建议生产环境中使用专…

    2026年9月23日
    200
  • Java JSON字符串有效性验证:基于栈的实现与常见陷阱

    本文深入探讨了使用Java栈结构验证JSON字符串有效性的方法。通过分析一个常见错误示例,详细阐述了在处理括号、方括号以及字符串引号时的正确逻辑,特别强调了字符串内部字符(包括转义字符)不应影响结构平衡的原则,并提供了改进思路,旨在帮助开发者构建健壮的JSON验证器。 JSON结构与栈的适用性 JS…

    2026年9月23日
    100
  • 《勇者斗恶龙1&2 HD-2D重制版》新预告 新增内容展示

    《勇者斗恶龙1&2 HD-2D重制版》新预告 新增内容展示《勇者斗恶龙1&2 HD-2D重制版》新预告 新增内容展示《勇者斗恶龙1&2 HD-2D重制版》新预告 新增内容展示《勇者斗恶龙1&2 HD-2D重制版》新预告 新增内容展示

    近日,《勇者斗恶龙1+2 hd-2d重制版》发布了全新预告,展示了多项新增内容,包含可探索的全新地牢、让角色掌握新技能的“卷轴系统”、经典回归的“迷你奖牌收集玩法”,以及《勇者斗恶龙2》中备受喜爱的“海底探险”机制。 最新预告视频: 《勇者斗恶龙1+2 HD-2D重制版》计划于2025年10月30日…

    2026年9月23日 • 用户投稿
    200
  • 《植物大战僵尸:重植版》制作人:价格亲民 未使用AI!

    经典塔防游戏《植物大战僵尸》在问世16年后迎来重磅回归。由PopCap Games精心打造的重制作品——《植物大战僵尸:重植版》将于10月23日正式登陆PlayStation、Xbox、Nintendo Switch以及PC平台。 据The Gamer报道,该游戏执行制作人Jake Neri在采访中…

    2026年9月22日
    300
  • PHPRestfulAPI怎么开发_PHP构建高效安全的RestfulAPI教程

    答案:本文介绍如何用PHP构建高效安全的Restful API,涵盖设计规范、项目结构、数据库操作、安全机制、统一响应格式及性能优化。遵循Restful风格使用标准HTTP方法与状态码,通过index.php统一入口路由请求至控制器;采用PDO预处理防止SQL注入,结合JWT实现认证授权,确保输入验…

    2026年9月22日
    200
  • 《如龙0导剪版》结束Switch2独占 登全平台!不支持原版升级

    《如龙0导剪版》结束Switch2独占 登全平台!不支持原版升级《如龙0导剪版》结束Switch2独占 登全平台!不支持原版升级《如龙0导剪版》结束Switch2独占 登全平台!不支持原版升级《如龙0导剪版》结束Switch2独占 登全平台!不支持原版升级

    《如龙0:誓约的场所 导演剪辑版》将于12月9日结束在Switch2平台的限时独占,正式登陆PC、PS5以及Xbox Series X|S等多个平台,目前各平台商店页面已上线。 与2015年最初发布的版本相比,导演剪辑版加入了全新的简体中文字幕与中文语音配音,并新增了部分剧情内容,例如李文海在复活赛…

    2026年9月22日 • 用户投稿
    300
  • Linux内核13-进程切换

    进程切换,也称为任务切换、上下文切换或任务调度,本文将探讨linux内核中进程切换的实现。我们首先理解几个关键概念。 1.1 硬件上下文 每个进程都有自己的地址空间,但所有进程共享CPU寄存器。因此,在恢复进程执行前,内核必须确保挂起时的寄存器值被重新加载到CPU寄存器中。 这些需要加载到CPU寄存…

    2026年9月22日
    300
  • PHP三元运算符复杂条件_PHP三元运算符多条件处理

    三元运算符可通过逻辑运算符或嵌套实现多条件判断,如链式写法 $result = ($a > 5 && $b == 90) ? ‘优秀’ : $score >= 80 ? ‘良好’ : $score >= 60 ? &#…

    2026年9月22日
    100

发表回复

登录后才能评论
关注微信