如何使用纯CSS实现电源开关控件(附源码)

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

效果预览

1639477839-5babfd4507a41_articlex.gif

源代码下载

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;}

用伪元素设置 onoff 文本,目前是处于 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);}

大功告成!

以上就是如何使用纯CSS实现电源开关控件(附源码)的详细内容,更多请关注创想鸟其它相关文章!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月24日 02:48:07
下一篇 2025年12月24日 02:48:19

相关推荐

  • css选择器优先级顺序是什么?css基本选择器优先级的介绍

    css的选择器有很多种,那么,自然而然的就会有优先级这一概念出现,所以,css选择器优先级顺序是怎样的呢?本篇文章将来给大家介绍css选择器优先级的排序,话不多说,我们来直接看正文内容。 在看css选择器优先级顺序前,我们先来简单说说css基本选择器有哪些? 1、标记选择器(如:body,div,p…

    好文分享 2025年12月24日
    000
  • 如何使用HTML5+css3制作出12种常用的按钮开关样式(附完整代码)

    现如今前端网页的开发越来越注重设计感,这些设计感更体现在细节处,今天向大家具体介绍一下各式各样的开关按钮是如何使用html5+css3制作出来的,希望可以帮到大家。 使用HTML5+css3制作按钮开关的原理 根据设计的要求填充各种颜色。 按钮开关的形状需要具体问题具体分析,如圆形按钮开关需要用到b…

    2025年12月24日
    000
  • 如何使用css3实现字体内发光效果(详解)

    在互联网日益发展的当今社会,人们对于网页用户体验的要求越来越苛刻,这就催生了更多的特殊效果的衍生,比如阴影效果,发光效果等,那么本文将向大家介绍一下如何使用css3实现字体发光的特殊效果,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 使用css3实现字体发光效果原理 首先我们要输入…

    2025年12月24日
    000
  • 如何使用css3实现文字的单阴影效果和多重阴影效果(附完整代码)

    最近几年在web网页开发的过程中越来越在意人机交互和用户体验,不仅颜色更加的多样化,而且各种特殊效果也是让人目不暇接。今天主要向大家介绍一下在文本里如何实现阴影的特殊效果,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 使用css3实现文本阴影效果的原理 实现阴影效果主要是用text…

    2025年12月24日
    000
  • 如何使用CSS实现滚动的图片栏(附代码)

    本篇文章给大家带来的内容是关于如何使用css实现滚动的图片栏(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 在一些网站上可以经常看到有一些图片进行持续不断的滚动,这个效果可以通过css的动画效果来实现。具体效果如下 主要原理是通过动画向左移动。 首先给出两组一样的图片(同…

    2025年12月24日
    000
  • 如何使用css实现翻转图片的效果(附代码)

    本篇文章给大家带来的内容是关于如何使用css实现翻转图片的效果(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 具体效果图如下: 主要用到的技术除了3D翻转和定位 ,还用到了一个新的属性 backface-visibility:visable|hidden; 该属性主要是用…

    2025年12月24日
    000
  • 如何用CSS制作一个三角形(附代码)

    css中的属性非常神奇,它可以制作很多我们意想不到的图形。这篇文章主要想和大家分享如何用css制作一个三角形,感兴趣的朋友可以参考一下,希望对你有所帮助。 首先我们新建一个100×100的正方形div,为了方便我们查看,设置一个背景颜色。  css代码如下: width: 100px;he…

    2025年12月24日 好文分享
    000
  • css怎么能清除浏览器默认样式?(代码)

    本篇文章给大家带来的内容是关于css怎么能清除浏览器默认样式?有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 css清除浏览器默认样式(代替 *{})  将代码放入 css 文件,使用 link 引入。 /* v2.0 | 20110126http://meyerweb.com/er…

    好文分享 2025年12月24日
    000
  • CSS3中的pointer-events属性介绍

    本章给大家介绍一个css3中超实用的属性:css3 pointer-events属性。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 最近发现了一个叫pointer-events的css属性,是一个与javascript有关的属性,pointer-events直译为指针事件,当把值…

    好文分享 2025年12月24日
    000
  • 如何使用css3制作圆形旋转动画(附完整代码)

    随着css3的广泛应用,人们浏览的web网页越来越多元化,而前端开发者也越来越注重人机交互和用户体验。从一开始的文字到后来的图片,以至于现在的动画特效,人们对于网页的要求也越来越挑剔,那么今天给大家展示一下如何使用css3制作旋转动画。本文在介绍如何使用css3制作旋转动画的基础上,重点探讨了其具体…

    2025年12月24日
    000
  • 图文详解CSS中颜色的四种表示方法

    在页面布局时必然会用到颜色,好看的颜色搭配会给页面增色不少,那你知道页面中的颜色怎么设置吗?这篇文章就和大家讲讲颜色的多种表示方法,还不知道颜色值表示方法的小伙伴可以参考一下,希望对你有所帮助! 一、英文单词表示颜色 最直接、最简单的方法,用颜色的英文单词表示,比如:红色我们可以写成color:re…

    2025年12月24日
    000
  • css3如何添加文字阴影效果?text-shadow设置文字阴影效果

    阴影效果是一个常见也很实用的效果,相信有些朋友在使用阴影效果来美观网页页面时,有时会有一些疑问,比如:字体文字阴影是怎样设置的等等。那么本章就给大家谈谈css3是如何设置字体文字阴影的。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 其实在css3中有一个很实用的属性可以给字体文字…

    2025年12月24日
    000
  • 图文详解CSS浮动float与文档流的关系

    在页面布局时,经常会用到浮动float,但是浮动会脱离标准流,会出现一些意想不到的结果,这篇文章就和大家讲讲,css浮动与文档流的关系,有需要的朋友可以参考一下,希望对你有用。 所谓文档流,指元素在排版布局的过程中,元素会自动从左到右,从上到下的流式排列。脱离文档流呢,就是元素打乱了这个排列,或是从…

    2025年12月24日 好文分享
    000
  • 如何使用CSS3实现弹性盒子布局方式

    传统的布局方案是依据float,display和position的盒子模型,随着开发语言的完善,弹性盒布局模型成为web开发人员工具箱中的一个很好的工具,因为摈弃了传统盒子复杂的设置并且可以很完美的契合开发者对于页面兼容性的要求,即当页面需要适应不同的屏幕大小以及设备类型时依然可以确保元素拥有恰当的…

    2025年12月24日 好文分享
    000
  • css3文字怎么描边?css3字体描边的实现方法

    在网页中有时会看到文字的轮廓都用边描绘出来,这其实就是字体的描边,以前为文字描边可能都会需要借助ps之类的工具,但是自从css3出现以后,文字的描边就不需要借助其他工具就可以直接实现了,所以,接下来这篇文章就来给大家分享关于css3实现字体描边的方法。 推荐手册:CSS在线手册 首先我们来看一看cs…

    2025年12月24日 好文分享
    000
  • 分享CSS中设置文字颜色的五种方法

    在页面布局时,为了使页面颜色不太单一,需要给文字设置不同的颜色,这篇文章就和大家讲讲怎么给文字设置不同的颜色,都有哪些方法可以设置文字的颜色,有需要的朋友可以参考一下。 CSS中文字的颜色,是通过color属性设置的。 下面是几种方法,都是将文字设置为蓝色。 h3{color:blue;} h3{c…

    好文分享 2025年12月24日
    000
  • 深入理解CSS中display:none和visibility:hidden的区别

    在项目中有时需要隐藏一些元素,会用到display:none或者 visibility:hidden,两种方法都可以实现隐藏的效果,那他们有什么区别呢?这篇文章就和大家讲讲css中display:none和visibility:hidden的区别。有需要的朋友可以参考一下。 Index4 小苹果 A…

    2025年12月24日
    000
  • 怎么用CSS设置动态超链接(附代码)

    这篇文章主要给大家介绍css设置动态超链接的方法,有代码有文字说明,比较容易理解,感兴趣的朋友可以参考一下,希望对你有所帮助。 HTML中,超链接是通过标记实现的,具体的地址使用标记的href属性。 ali的博客 默认的情况下,浏览中的超链接统一为蓝色并且有下划线,点击过后的超链接则为紫色,而且也有…

    好文分享 2025年12月24日
    000
  • 如何用CSS设置段落的垂直对齐(附代码)

    在浏览网页时,经常看到一些段落他是垂直对齐的,今天这篇文章就和大家讲讲如何用css设置段落的垂直对齐,有需要的朋友可以参考一下,希望对你有所帮助。 CSS中通过属性vertical-align来设置段落的垂直对齐方式。 注意,对于文字本身而言,该属性对于块级元素并不起作用,例如 和 等标记,但是,对…

    好文分享 2025年12月24日
    000
  • 如何使用css3实现图片的自动轮播特效(附完整代码)

    本文在介绍如何使用css3实现图片的轮播特效的基础上,重点探讨了其具体步骤,本文内容紧凑,希望大家可以有所收获。 大家在浏览网页的过程中,会遇见一种名叫图片轮播的特殊效果:在同样的位置不同的图片会根据时间的变化循环播放,达到一种类似于播放幻灯片的效果。那么我们在网页开发的过程中如何实现图片的轮播特效…

    2025年12月24日
    000

发表回复

登录后才能评论
关注微信