使用一个div标签画出一个红绿灯并加上灯光切换的动画。 关键思想在于一个标签的box-shadow属性可以同时设置多个。

效果如下:
代码:
html:
{<!--warp标签是后面的蓝色背景--><div class="wrap"><div class="traffic-light"></div></div>
}css:body {margin: 0;/* 绝对定位使height: 100%生效 */position: absolute; height: 100%;width: 100%;}/* 背景图 使用margin auto实现垂直水平居中 */.wrap {position: absolute;top: 0;left: 0;right: 0;bottom: 0;margin: auto;width: 500px;height: 350px;background: rgb(97, 170, 189);}/* 灯框架 */.traffic-light {/* 居中代码 */position: absolute;top: 0;left: 0;right: 0;bottom: 0;margin: auto;text-align: center;/* 绘制图案 */width: 300px;height: 90px;background: #282f2f;border-radius: 50px;box-shadow: 0 0 0 2px #eee inset;}.traffic-light::after {/* 居中代码 */position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);content: '';display: inline-block;width: 70px;height: 70px;border-radius: 50%;animation: traffic-light 5s linear 0s infinite;}@keyframes traffic-light {from {background: transparent;  /* 黄灯 */box-shadow: -85px 0 0 0 transparent,  /* 红灯 */85px 0 0 0 transparent, /* 绿灯 */-85px 0 15px 0 transparent, /* 红灯光影 */0px 0 15px 0 transparent, /* 黄灯光影 */85px 0 15px 0 transparent; /* 绿灯光影 */}25% {background: transparent;  /* 黄灯 */box-shadow: -85px 0 0 0 rgb(247, 78, 26),  /* 红灯 */85px 0 0 0 transparent, /* 绿灯 */-85px 0 15px 0 rgb(247, 78, 26), /* 红灯光影 */0px 0 15px 0 transparent, /* 黄灯光影 */85px 0 15px 0 transparent; /* 绿灯光影 */}50% {background: rgb(231, 183, 78);  /* 黄灯 */box-shadow: -85px 0 0 0 transparent,  /* 红灯 */85px 0 0 0 transparent, /* 绿灯 */-85px 0 15px 0 transparent, /* 红灯光影 */0px 0 15px 0 rgb(231, 183, 78), /* 黄灯光影 */85px 0 15px 0 transparent; /* 绿灯光影 */}75% {background: transparent;  /* 黄灯 */box-shadow: -85px 0 0 0 transparent,  /* 红灯 */85px 0 0 0 rgb(38, 175, 84), /* 绿灯 */-85px 0 15px 0 transparent, /* 红灯光影 */0px 0 15px 0 transparent, /* 黄灯光影 */85px 0 15px 0 rgb(38, 175, 84); /* 绿灯光影 */}to {background: transparent;  /* 黄灯 */box-shadow: -85px 0 0 0 transparent,  /* 红灯 */85px 0 0 0 transparent, /* 绿灯 */-85px 0 15px 0 transparent, /* 红灯光影 */0px 0 15px 0 transparent, /* 黄灯光影 */85px 0 15px 0 transparent; /* 绿灯光影 */}}
复制代码

完整代码地址:github.com/junhaogz215…

转载于:https://juejin.im/post/5d29bc9de51d45590a445bdb

前端 单标签 纯 CSS 实现红绿灯动画相关推荐

  1. 如何使用纯 CSS 创建翻牌动画

    下面的示例向您展示了如何使用纯 CSS 创建翻牌动画. 作者:坚果 公众号:"大前端之旅" 华为云享专家,InfoQ签约作者,阿里云专家博主,51CTO博客首席体验官,开源项目GV ...

  2. html怎么让图标动起来,让ICON生动起来 纯CSS实现带动画的天气图标

    让ICON生动起来 纯CSS实现带动画的天气图标 1月 20, 2016 评论 (1) Sponsor CSS3动画属性并不是很多,但重点其实是你怎样去运用它,从简单的hover状态或复杂的小动画,都 ...

  3. [css] 使用纯CSS代码实现动画的暂停与播放

    [css] 使用纯CSS代码实现动画的暂停与播放 一个属性:animation-play-state 取值:paused(暂停)|running(播放) hover取代点击 .stop:hover~. ...

  4. 纯CSS实现图片动画

    纯CSS实现图片动画 1.先网上下载一张sprites动画图片,直接百度搜sprites图片就可. 2.用css设置一个关键帧,确定好起始位置和终止位置, 通过background-position调 ...

  5. HTML5纯css实现爱心动画效果DW、vscode来自程序员的浪漫表白

    HTML5纯css实现爱心动画效果DW来自程序员的浪漫表白 一.拉面版 css部分 *{/* 初始化页面元素内外边距*/margin:0;padding: 0;}body{/* 弹性布局元素垂直水平居 ...

  6. 前端link标签引入css教程

    前端link标签引入css教程 首先我们在桌面新建一个文件 我们在这个文件里分别新建个存放HTML的文件夹以及css层叠样式表格的文件夹 然后我们打开dw,在文件选项找到新建 我们新建一个HTML的的 ...

  7. HTML中 css红绿黄灯,纯CSS实现红绿灯效果(面试常见)

    先看题,别看答案试下吧 ~_~ 1.下面的代码输出的内容是什么? function O(name){ this.name=name||'world'; } O.prototype.hello=func ...

  8. html5制作天气动画背景,CSS icon图标之纯CSS实现带动画效果的天气图标

    CSS3动画属性并不是很多,但重点其实是你怎样去运用它,从简单的hover状态或复杂的小动画,都可以巧妙的用CSS3动画属性来实现. 今天主要是和大家分享一个比较有创意.实用的CSS天气图标动画,静态 ...

  9. css纯加载动画,纯CSS实现loading动画加载效果

    原标题:纯CSS实现loading动画加载效果 loading动画图标的做法有很多.一般不想麻烦的人直接嵌入一张gif的动态图标即可实现!虽然该方法方便快捷,但是对网站的加载速度优化方面还不是最好,制 ...

最新文章

  1. 几个简单的shell脚本
  2. Go Channel 详解
  3. 简单的Android对文件进行读写操作
  4. 20155238 实验四 Android程序设计
  5. Quartz.Net分布式任务管理平台(第二版)
  6. Z-Blog 扩展数据库 字段 二次开发
  7. 蒙特 卡罗方法matlab,蒙特·卡罗方法中的数学之美,你一定不想错过
  8. 32g内存 android开发,16G走开 我要32G内存的安卓手机
  9. libpcre.so.1 cannot be found
  10. weblogic对JSP预编译、weblogic读取JSP编译后的class文件、ant中weblogic.jspc预编译JSP
  11. YOLOv5与Faster RCNN相比。 谁赢?
  12. LLVM语言参考手册之标识符、类型与常量
  13. 百度地图线路查询路线样式自定义
  14. 常见的文件名后缀及用法
  15. h5+css3简单实现网页端五子棋游戏1.0版
  16. MySQL数据库之备份与恢复
  17. 学习笔记-----浅谈汇编指令CMP运行机制
  18. 上市公司绿色专利申请数据(绿色创新数据1)(1990-2021)
  19. asp.net(c#)文件生成HTML文件
  20. 算法(笔试题) : 城市天际线

热门文章

  1. 封装a.64p成.x64p达芬奇工具链的建立(工程编译步骤)g
  2. 开发高可移植性J2ME的软件测试篇
  3. 短线高手如何做当日黄金白银短线
  4. 接口;String类;内部类
  5. 验证外星语词典(2022-5-17)每日一练
  6. 952.验证外星语词典
  7. hadoop fs、hadoop dfs和hdfs dfs的区别
  8. VBA—压缩文件夹成一个ZIP压缩包
  9. WIN10待机睡眠不关USB电源、进不了睡眠S3、没有电源选项、节电模式、电脑漂,已解决
  10. 【开源项目】智慧园区、数字孪生智慧园区IBMS三维可视化运维项目,大屏可视化