本篇文章给大家带来的内容是关于如何使用纯CSS实现电源开关控件(附源码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

效果预览

源代码下载

https://github.com/comehope/front-end-daily-challenges

代码解读

定义 dom,包含 3 个元素,分别代表 input 控件、开关和灯光:

居中显示:body {

margin: 0;

height: 100vh;

display: flex;

align-items: center;

justify-content: center;

background-color: #eee;

}

定义控件的样式,把控件的设置为透明,使其不可见,但仍可与用户交互。其中字号大小是变量,因为 input 控件的字号与正文字号不同,所以需要单独设置:body {

font-size: var(--font-size);

}

:root {

--font-size: 16px;

}

.toggle {

position: absolute;

font-size: var(--font-size);

width: 5em;

height: 8em;

margin: 0;

filter: opacity(0);

cursor: pointer;

z-index: 2;

}

设置开关的轮廓:.switch {

position: absolute;

width: 5em;

height: 8em;

border-radius: 1.2em;

background: linear-gradient(#d2d4d6, white);

}

用阴影使开关变得立体:.switch {

box-shadow:

inset 0 -0.2em 0.4em rgba(212, 212, 212, 0.75),

inset 0 -0.8em 0 0.1em rgba(156, 156, 156, 0.85),

0 0 0 0.1em rgba(116, 116, 116, 0.8),

0 0.6em 0.6em rgba(41, 41, 41, 0.3),

0 0 0 0.4em #d4d7d8;

}

用伪元素设置 on 和 off 文本,目前是处于 off 状态:.toggle ~ .switch::before,

.toggle ~ .switch::after {

position: absolute;

width: 100%;

text-align: center;

font-size: 1.4em;

font-family: sans-serif;

text-transform: uppercase;

}

.toggle ~ .switch::before {

content: '|';

bottom: 1em;

color: rgba(0, 0, 0, 0.5);

text-shadow: 0 0.1em 0 rgba(255, 255, 255, 0.8);

}

.toggle ~ .switch::after {

content: 'O';

top: 0.6em;

color: rgba(0, 0, 0, 0.45);

text-shadow: 0 0.1em 0 rgba(255, 255, 255, 0.4);

}

把 input 控件设置为 checked状态,以便设置处于 on 状态的样式:

设置处于 on 状态的开关样式:.toggle:checked ~ .switch {

background: linear-gradient(#a1a2a3, #f0f0f0);

box-shadow:

inset 0 0.2em 0.4em rgba(212, 205, 199, 0.75),

inset 0 0.8em 0 0.1em rgba(255, 255, 255, 0.77),

0 0 0 0.1em rgba(116, 116, 118, 0.8),

0 -0.2em 0.2em rgba(41, 41, 41, 0.18),

0 0 0 0.4em #d4d7d8;

}

设置处于 on 状态的文本样式:.toggle:checked ~ .switch::before {

bottom: 0.3em;

text-shadow: 0 0.1em 0 rgba(255, 255, 255, 0.5);

}

.toggle:checked ~ .switch::after {

top: 1.2em;

text-shadow: 0 0.1em 0 rgba(255, 255, 255, 0.15);

}

接下来设置灯光效果。

先设置处于 off 状态的黑暗效果:.toggle ~ .light {

width: 100vw;

height: 100vh;

background-color: #0a0a16;

z-index: 1;

filter: opacity(0.7);

}

再设置处于 on 状态的明亮效果:.toggle:checked ~ .light {

filter: opacity(0);

}

大功告成!

php控制硬件电源开关模块,如何使用纯CSS实现电源开关控件(附源码)相关推荐

  1. 「兔了个兔」玉兔踏青,纯CSS实现瑞兔日历(附源码)

  2. 【CSS特效扫盲】精选40种纯CSS特效应用实例,肝了10个晚上整理纯CSS特效(上)(附源码下载)

    [写在前面]其实有时候经常会在某一天用到某种特效,然后就去网上找demo,千篇一律的CSS特效代码不说,更多的是滥竽充数,而且还没有特效预览图,因此针对我之前整理的CSS特效在这里做一个总结,希望给你 ...

  3. 转帖 .Net(C#)纯GDI+绘制实时动态曲线图之二(曲线控件全部源码)

    #region 曲线数据显示 #region 绘制背景网格    /// <summary>    /// 刷新背景网格线,并返回背景图片(背景不判断是否滚动)    /// </s ...

  4. 前端 CSS : 1# 纯 CSS 实现万圣节 toggle 控件

    介绍 原文 设计来源 感謝 comehope 大佬的 前端每日实战 对我的启蒙 该文仅对是原文进行一部分的分析及分享, 有兴趣的建议查看原文 效果预览 github.io 浏览 源代码地址 https ...

  5. html怎么让方块自动旋转,如何使用纯CSS实现一个圆环旋转错觉的动画效果(附源码)...

    本篇文章给大家带来的内容是关于如何使用纯CSS实现一个圆环旋转错觉的动画效果,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 效果预览 源代码下载 https://github.com ...

  6. css怎样使弹跳的小球旋转,如何使用纯CSS实现小球跳跃台阶的动画效果(附源码)...

    本篇文章给大家带来的内容是关于如何使用纯CSS实现小球跳跃台阶的动画效果(附源码) ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 效果预览 源代码下载 https://github ...

  7. php万圣节源码,如何使用纯CSS实现万圣节的toggle控件(附源码)

    本篇文章给大家带来的内容是关于如何使用纯CSS实现万圣节的toggle控件(附源码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 效果预览 源代码地址 https://github ...

  8. css 跳跃动画,如何使用纯CSS实现方块跳跃的动画(附源码)

    本篇文章给大家带来的内容是关于如何使用纯CSS实现方块跳跃的动画(附源码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 效果预览 源代码下载 https://github.com/ ...

  9. java转俯视图,如何使用纯CSS实现一个足球场的俯视图(附源码)

    本篇文章给大家带来的内容是关于如何使用纯CSS实现一个足球场的俯视图(附源码) ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 效果预览 源代码下载 https://github.c ...

最新文章

  1. Exchange Server2010系列之十四:个人邮件存档
  2. gulp修改服务器端口,2.用gulp建立一个服务器
  3. javascript之闭包深入理解(一)
  4. python3 re模块_Python3 正则表达式 re 模块的使用 - 学习笔记
  5. 使用Okta的单点登录保护您的Vert.x服务器
  6. 1、图解Oracle Logminer配置使用
  7. 灯效控制器和rgb控制器_送老婆一个RGB全家桶PC,试试钱都花在光效上的感觉是怎样的...
  8. cif t t操作流程图_操作示例:T/T+CIF+海运
  9. 怎么设置代理服务器IP上网
  10. Eli Bendersky's website » Code sample – socket client based on Twisted with PyQt
  11. 【微信公众号开发解决URL接口配置问题 】
  12. ElasticSearch数据库(ES数据库)简介
  13. Linux之修改语言(语系)
  14. python scipy.optimize.minimize多变量多参数优化
  15. Jetson nano开机自启动程序
  16. 技术分享 | 带你探索三维激光雷达“眼中”的世界
  17. 手机号码归属地查询[免费]
  18. wine常见问题集合
  19. HPE DL380 Gen10 服务器远程升级ESXi6.0到ESXi6.7
  20. 闪讯/随e行 720错误解决

热门文章

  1. css iohone手机端适配,【css】适配iphoneX
  2. yii2.0安装下载
  3. 怎么玩转迷恋猫呢?---来源于godapp分析
  4. 【问题解决】Ubuntu忘记密码+重置密码
  5. 活跃度降40% 社交平台机会丧失!七问新浪微博
  6. GitChat · 运营 | Node 社区开源基金会是如何运作的?
  7. 广西计算机应用设计大赛,关于举办2019年桂林理工大学网页设计大赛暨第十三届广西大学生计算机应用大赛选拔赛的通知...
  8. 【月报】Android开发实习的第一个月——为什么进度这么慢
  9. SUSE Linux11安装教程(图文详解)
  10. 搞定IC卡(中)-ic卡扇区解读