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

学习后效果地址:https://scrimba.com/c/c8PQ3PTB

感想:CSS 真强大!

HTML code:

<!-- candle: 蜡烛; glow: 光晕; flames:火焰; thread:灯芯 -->
<div class="candle">
<span class="glow"></span>
<span class="flames"></span>
<span class="thread"></span>
</div>

CSS code:

html, body {
margin:;
padding:;
}
/* 设置body的子元素水平垂直居中 */
body{
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
background-color: black;
}
/* 画出蜡烛的轮廓 */
.candle{
position: relative;
top: 10em;
display: flex;
justify-content: center;
/* 现在浏览器默认12px */
font-size: 12px;
width: 15em;
height: 30em;
/* 显示border看清candle的大小
border: 1px solid white; */
border-radius: 10em / 4em;
box-shadow:
inset 2em -3em 5em rgba(0, 0, 0, 0.4),
inset -2em 0 5em rgba(0, 0, 0, 0.4);
background: linear-gradient(
orange,
darkorange,
sienna,
saddlebrown 50%,
rgba(0, 0, 0, 0.6)
);
}
/* 用伪元素画出蜡烛的顶面 */
.candle::before{
position: absolute;
/* 设置为此元素设置的width、height包括此元素的border、padding、content */
box-sizing: border-box;
content: '';
width: 100%;
height: 5em;
border: 0.2em solid darkorange;
border-radius: 50%;
background: radial-gradient(
#444,
orange,
saddlebrown,
sienna,
darkorange
);
filter: opacity(0.7);
}
/* 画出灯芯 */
.thread{
position: absolute;
top: -1.8em;
width: 0.6em;
height: 3.6em;
/* border: 1px solid white; */
border-radius: 40% 40% 0 0;
background: linear-gradient(
#111,
black,
orange 90%
);
}
/* 画出蜡烛轮廓 */
.flames{
position: absolute;
width: 2.4em;
/* border: 1px solid white;*/
}
/* 利用flames的::before伪元素画出內焰 */
.flames::before{
position: absolute;
top: -4.8em;
content:'';
box-sizing: border-box;
width: 100%;
height: 6em;
border: 0.2em solid transparent;
border-radius: 50% 50% 35% 35%;
filter: opacity(0.7);
}
/* 利用flames的::after伪元素画出外焰 */
.flames::after{
position: absolute;
top: -12em;
content:'';
width: 100%;
height: 12em;
border-radius: 50% 50% 20% 20%;
box-shadow: 0 -0.6em 0.4em darkorange;
background: linear-gradient(white 80%, transparent);
animation:
enlarge 5s linear infinite,
move 6s linear infinite;
}
@keyframes move {
0%, 100% {
transform: rotate(-2deg);
}
50% {
transform: rotate(2deg);
}
}
@keyframes enlarge {
0%, 100% {
height: 12em;
top: -12em;
}
50% {
height: 14em;
top: -13em;
}
}
/* 画出光晕 */
.glow{
position: absolute;
top: -16.5em;
width: 10em;
height: 18em;
border-radius: 50%;
background-color: orangered;
filter: blur(6em);
animation: blink 100ms infinite;
}
/* 为光晕增加闪烁效果 */
@keyframes blink{
to{
filter: blur(6em) opacity(0.8);
}
}

75.纯 CSS 创作一支摇曳着烛光的蜡烛的更多相关文章

  1. 49.纯 CSS 创作一支诱人的冰棍

    原文地址:https://segmentfault.com/a/1190000015257561 感想:重点在让色彩滚动起来->background-position: 0 1000vh; HT ...

  2. 如何用纯 CSS 创作一支诱人的冰棍

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

  3. 前端每日实战:49# 视频演示如何用纯 CSS 创作一支诱人的冰棍

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

  4. 3.纯 CSS 创作一个容器厚条纹边框特效

    原文地址:3.纯 CSS 创作一个容器厚条纹边框特效 没有啥好点子呀,不爽 HTML代码: <div class="box"> <div class=" ...

  5. 2.纯 CSS 创作一个矩形旋转 loader 特效

    原文地址:2.纯 CSS 创作一个矩形旋转 loader 特效 扩展后地址:https://scrimba.com/c/cNJVWUR  扩展地址:https://codepen.io/pen/ HT ...

  6. 1.纯 CSS 创作一个按钮文字滑动特效 + 弹幕(残缺)

    原文地址:1# 视频演示如何用纯 CSS 创作一个按钮文字滑动特效 扩展后地址:https://scrimba.com/c/cJkzMfd HTML代码: <html> <head& ...

  7. 如何创作用纯 CSS 绘制一支栩栩如生的铅笔

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

  8. 74.纯 CSS 创作一台 MacBook Pro

    原文地址:https://segmentfault.com/a/1190000015568609 HTML code: <div class="macbook"> &l ...

  9. 63(原67).纯 CSS 创作单元素点阵 loader

    原文地址:https://segmentfault.com/a/1190000015444368 感想:CSS又一次让我见识到它的强大之处 --> box-shadow . box-shadow ...

随机推荐

  1. 实验四 CC2530平台上UART组件的TinyOS编程

    实验四 CC2530平台上UART组件的TinyOS编程 实验目的: 加深和巩固学生对于TinyOS编程方法的理解和掌握 让学生初步掌握CC2530的UART.及其TinyOS编程方法 学生通过本实验 ...

  2. 3.go语言的转译字符

    go语言的转译字符 \a 匹配响铃符 (相当于 \x07) 注意:正则表达式中不能使用 \b 匹配退格符,因为 \b 被用来匹配单词边界, 可以使用 \x08 表示退格符. \f 匹配换页符 (相当于 ...

  3. 关于使用git上传远程仓库的两种情况(新项目与老项目)

    具体的git配置与github仓库ssh配置在这里就不再赘述,本次只讲自己之前遇到的两个内容 1.还没有项目,将远程仓库clone下来直接在里边写项目. 2.已有项目,将已有的项目直接添加到建立好的远 ...

  4. [双系统linux] ----安装完成后无法打开wifi

    在安装了linux 双系统以后发现无法打开wifi和蓝牙. rfkill list all 0:ideapad_wlan: Wireless LANSoft blocked: noHard block ...

  5. javaEE十三种核心技术

    郭晨 软件151 1531610114 java的大方向就是JavaEE,JavaEE不仅仅是socket编程,具体包括13中核心技术. JAVAEE的核心API与组件 JAVAEE平台由一整套服务( ...

  6. uclibc,eglibc,glibc,Musl-libc之间的区别和联系

    转自:https://www.sohu.com/a/164202127_424963 1.Glibc glibc = GNU C Library 是GNU项(GNU Project)目,所实现的 C语 ...

  7. Docker切换国内镜像

    本人是Ubuntu系统 Ubuntu 18.04 安装 Docker-ce 1.更换国内软件源,推荐中国科技大学的源,稳定速度快(可选) sudo cp /etc/apt/sources.list / ...

  8. Unity 3D类结构简介

    趁着周末,再来一发.对于Unity3D,我也是刚开始学习,希望能够与大家多多交流.好了,废话不多说,下面继续. 本篇文章使用C#进行举例和说明.关于Unity 3D编辑器中的各种窗口,网上有很多资料了 ...

  9. 在Vue组件中获取全局的点击事件

    // 定义全局点击函数 Vue.prototype.globalClick = function (callback) { document.getElementById('main').onclic ...

  10. 【如皋OJ】1127:正整数N转换成一个二进制数

    1127: 正整数N转换成一个二进制数 时间限制: 1 Sec  内存限制: 128 MB提交: 85  解决: 59[提交] [状态] [讨论版] [命题人:zhuzhigang] 题目描述 输入一 ...