效果预览

在线演示

按下右侧的“点击预览”按钮可以在当前页面预览,点击链接可以全屏预览。

https://codepen.io/comehope/pen/BVpvMz

可交互视频教程

此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码。

请用 chrome, safari, edge 打开观看。

https://scrimba.com/p/pEgDAM/cZ8Ebf7

源代码下载

本地下载

每日前端实战系列的全部源代码请从 github 下载:

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

代码解读

定义 dom,容器中包含 8 个子元素:

<div class="coil"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span>
</div>

居中显示:

body {margin: 0;height: 100vh;display: flex;align-items: center;justify-content: center;background: radial-gradient(circle at center, midnightblue, black);
}

画出纹香盘要用的框线:

.coil {position: relative;display: flex;justify-content: center;
}.coil span {position: absolute;width: calc((var(--n) * 2 - 1) * 1em);height: calc((var(--n) - 0.5) * 1em);border: 1em solid darkgreen;
}.coil span:nth-child(1) {--n: 1;
}.coil span:nth-child(2) {--n: 2;
}.coil span:nth-child(3) {--n: 3;
}.coil span:nth-child(4) {--n: 4;
}.coil span:nth-child(5) {--n: 5;
}.coil span:nth-child(6) {--n: 6;
}.coil span:nth-child(7) {--n: 7;
}.coil span:nth-child(8) {--n: 8;
}

把一半框线放置到上方:

.coil span:nth-child(odd) {align-self: flex-end;
}

删除掉上方框线的下边框,和下方框线的上边框:

.coil span:nth-child(odd) {border-bottom: none;
}.coil span:nth-child(even) {border-top: none;
}

对齐上下边框:

.coil span:nth-child(even) {transform: translateX(-1em);
}

把边框改为曲线:

.coil span:nth-child(odd) {border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}.coil span:nth-child(even) {border-radius: 0 0 50% 50% / 0 0 100% 100%;
}

用伪元素画出蚊香最中间的部分:

.coil::before {content: '';position: absolute;width: 1em;height: 1em;background-color: darkgreen;border-radius: 50%;left: -1.5em;top: -0.5em;
}

用伪元素画出蚊香的燃点:

.coil::after {content: '';position: absolute;width: 1em;height: 1em;border-radius: 50%;top: -0.5em;background-color: darkred;left: -9.5em;z-index: -1;transform: scale(0.9);box-shadow: 0 0 1em white;
}

最后,为燃点增加闪动的效果:

.coil::after {animation: blink 1s linear infinite alternate;
}@keyframes blink {to {box-shadow: 0 0 0 white;}
}

大功告成!

原文地址:https://segmentfault.com/a/1190000015246974

更多专业前端知识,请上 【猿2048】www.mk2048.com

如何用纯 CSS 创作一盘传统蚊香相关推荐

  1. css3 烟 蚊香_前端每日实战:48# 视频演示如何用纯 CSS 创作一盘传统蚊香

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. 可交互视频教程 此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码. 请用 chrome, s ...

  2. css3 烟 蚊香_如何用纯 CSS 创作一盘传统蚊香

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. 可交互视频教程 此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码. 请用 chrome, s ...

  3. 如何用纯 CSS 创作一盘传统蚊香 1

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/w178191520/article/details/84393147 效果预览 在线演示 按下右侧的 ...

  4. 如何用纯 CSS 创作一个小球上台阶的动画

    如何用纯 CSS 创作一个小球上台阶的动画 效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/come ...

  5. 如何用纯 CSS 创作一个同心圆弧旋转 loader 特效

    效果预览 在线演示 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/OZmXQX 可交互视频教程 此视 ...

  6. 如何用纯 CSS 创作一个荧光脉冲 loader 特效

    效果预览 在线演示 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/erRzzR 可交互视频教程 此视 ...

  7. 如何用纯 CSS 创作一个冒着热气的咖啡杯

    效果预览 在线演示 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/xjXxoz 可交互视频教程 此视 ...

  8. 如何用纯 CSS 创作一个渐变色动画边框

    效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/odpRKX 可交互视频教 ...

  9. css动态彩虹背景,如何用纯 CSS 创作彩虹背景文字

    CSS3 渐变(Gradients) https://www.runoob.com/css3/css3-gradients.html 效果预览 按下右侧的"点击预览"按钮可以在当前 ...

最新文章

  1. 2020牛客多校第1场H-Minimum-cost Flow
  2. Python使用matplotlib可视化散点图、使用seaborn中的lmplot函数使用多子图可视化不同分组的散点图最优拟合线性回归曲线
  3. (筆記) 如何安裝Altera USB Blaster? (SOC) (Quartus II) (DE2)
  4. [提示]普通用户使用sealos安装k8s集群的话,默认还是会装到root用户的home目录/root
  5. python学习四(处理数据)
  6. 关于.net的.dll.refresh文件
  7. Libra教程之:Libra testnet使用指南
  8. 288. Unique Word Abbreviation
  9. priority_queuey用法
  10. Java中堆内存和栈内存详解(转)
  11. 电脑主板接口_如何看电脑主板 M.2 接口是支持 SATA 还是 NVMe 固态硬盘?
  12. java中的杨辉三角形_Java编写杨辉三角
  13. mysql 查连接数,查看MySQL的连接数
  14. html+css 制作小米商城主体内容的商品展示
  15. android 出生日期设置,android-选择出生日期对话框
  16. 如何利用EXCEL生成任意自由度任意显著因子的F分布表
  17. MSSQL On Linux AlwaysOn
  18. 图文详解MOS管的米勒效应
  19. Marathon Ranking
  20. 计算机科学学术论文格式

热门文章

  1. php提前用户系统时间限制,php date()比服务器时间提前一小时(DST问题)
  2. 高斯白噪声下基于EM的多径时延估计
  3. 一条一条来,MySQL变量、流程控制与游标,完整详细可收藏
  4. MTK 移植泰文输入法
  5. 博客园背景设置CSS代码
  6. 如何开发一个可运维系统的一点体会
  7. Tomcat 部署了web项目中文乱码
  8. HDU 2629 Identity Card
  9. [ExtJS5学习笔记]第三十五条 sencha extjs 5 组件查询方法
  10. 使用Eclipse创建一个Android程序方法