CSS3 实现火焰-小火苗效果

devtools/2024/12/23 8:53:50/

创建 CSS3 火焰效果可以通过组合 CSS 动画、伪元素 和 渐变 来实现。以下是一个简单的实现步骤,展示如何制作动态火焰效果

1. HTML 结构

我们只需要一个简单的 div 容器:

<div class="fire"></div>

2. CSS 实现

基础样式

使用 position: absolute 和渐变背景色来设置火焰的颜色层次。

css">body {margin: 0;background: black; /* 背景颜色模拟夜晚 */display: flex;justify-content: center;align-items: center;height: 100vh;
}.fire {position: relative;width: 50px;height: 80px;border-radius: 50%; /* 圆润的形状 */background: radial-gradient(circle, #ff4500, #ff8c00, transparent);animation: flicker 0.2s infinite ease-in-out;box-shadow: 0 0 30px rgba(255, 69, 0, 0.6);
}

动画火焰抖动

通过 @keyframes 来模拟火焰跳动的效果:

css">@keyframes flicker {0%, 100% {transform: scale(1) translateY(0);opacity: 1;}50% {transform: scale(1.2) translateY(-10px); /* 火焰抖动并缩放 */opacity: 0.8;}
}

添加火焰层次

使用伪元素(::before 和 ::after)来叠加多层火焰:

css">.fire::before,
.fire::after {content: '';position: absolute;border-radius: 50%;width: 100%;height: 100%;top: 0;left: 0;background: radial-gradient(circle, #ffa500, #ff4500, transparent);animation: flicker 0.3s infinite ease-in-out;
}.fire::before {width: 70%;height: 70%;top: 15%;left: 15%;background: radial-gradient(circle, #ff6347, #ff4500, transparent);animation-duration: 0.25s;
}

3. 添加更复杂的动画效果

通过叠加火焰的多层渐变,进一步增强火焰效果:

css">.fire {background: radial-gradient(circle, #ff4500, #ff8c00, transparent);box-shadow: 0 0 30px rgba(255, 69, 0, 0.6);position: relative;animation: flicker 0.3s infinite ease-in-out;
}.fire::before {content: '';position: absolute;top: -30px;left: -20px;width: 70px;height: 100px;border-radius: 50%;background: radial-gradient(circle, #ffa500, #ff4500, transparent);opacity: 0.7;animation: flicker 0.4s infinite ease-in-out;
}.fire::after {content: '';position: absolute;top: -40px;left: -25px;width: 100px;height: 140px;border-radius: 50%;background: radial-gradient(circle, #ffff00, #ffa500, transparent);opacity: 0.5;animation: flicker 0.5s infinite ease-in-out;
}

完整代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>CSS Fire Effect</title><style>css">body {margin: 0;background: black;display: flex;justify-content: center;align-items: center;height: 100vh;}.fire {position: relative;width: 50px;height: 80px;border-radius: 50%;background: radial-gradient(circle, #ff4500, #ff8c00, transparent);animation: flicker 0.2s infinite ease-in-out;box-shadow: 0 0 30px rgba(255, 69, 0, 0.6);}@keyframes flicker {0%, 100% {transform: scale(1) translateY(0);opacity: 1;}50% {transform: scale(1.2) translateY(-10px);opacity: 0.8;}}.fire::before,.fire::after {content: '';position: absolute;border-radius: 50%;width: 100%;height: 100%;top: 0;left: 0;background: radial-gradient(circle, #ffa500, #ff4500, transparent);animation: flicker 0.3s infinite ease-in-out;}.fire::before {width: 70%;height: 70%;top: 15%;left: 15%;background: radial-gradient(circle, #ff6347, #ff4500, transparent);animation-duration: 0.25s;}</style>
</head>
<body><div class="fire"></div>
</body>
</html>

效果预览

在这里插入图片描述

运行上述代码后,您会看到一个动态火焰效果,火焰会随着时间微微跳动。

可扩展性

颜色调整:更改 radial-gradient 中的颜色,可以生成不同风格的火焰(如蓝色火焰)。
大小调整:修改 .fire 的 width 和 height,调整火焰的大小。
添加粒子效果:结合 CSS 粒子动画(如火花)进一步增强视觉效果。
如果需要更多高级效果,可以结合 SVG 或 WebGL 创建更逼真的火焰动画。


http://www.ppmy.cn/devtools/144641.html

相关文章

vi或vim进行替换

vi 中去搜索特定字符串cdc_,替换为aaa_ 在 vi 或 vim 编辑器中&#xff0c;你可以使用以下命令来查找特定的字符串 cdc_ 并将其替换为 aaa_&#xff1a; 打开文件&#xff1a; vi filename 搜索 /cdc_ 按n 是搜索下一个 进入替换模式&#xff1a; :%s/cdc_/aaa_/g 解释&#…

CSS 第七章

B站《前端Web开发HTML5CSS3移动web视频教程》第九天和第10天的课程&#xff1a;SEO、Favicon、小兔鲜网页制作。 一、项目目录 1.根文件夹xtx-pc 2.子文件夹 images文件夹&#xff1a;存放固定使用的图片素材uploads文件夹&#xff1a;存放非固定使用的图片素材iconfont文件…

2024 高级爬虫笔记(四)协程、selenium

目录 一、协程1.1 概念1.2、asyncio模块1.2.1、概述1.2.2、asyncio基本使用1.2.3、使用协程实现多任务异步执行1.2.4、Task 概念及用法1.2.4.1 概念1.2.4.2、Task 简单用法 1.2.5、asyncio.wait和asyncio.gather的异同 1.3、aiohttp1.3.1、安装与使用1.3.2、简单使用1.3.3、在U…

uniapp 微信小程序 功能入口

单行单独展示 效果图 html <view class"shopchoose flex jsb ac" click"routerTo(要跳转的页面)"><view class"flex ac"><image src"/static/dyd.png" mode"aspectFit" class"shopchooseimg"&g…

flink集群搭建 详细教程

一、环境准备 1、准备三台服务器 三台服务器ip 115.120.227.194 jobmanger 123.60.154.232 taskmanger 36.111.173.249 taskmanger 2、给三台主机分别配置主机名 #第一台机器 hostnamectl set-hostname hadoop01#第二台机器 hostnamectl set-hostname hadoop02#第三台…

iClient3D for Cesium 实现限高分析

作者&#xff1a;gaogy 1、背景 随着地理信息技术的发展&#xff0c;三维地球技术逐渐成为了许多领域中的核心工具&#xff0c;尤其是在城市规划、环境监测、航空航天以及军事领域。三维地图和场景的应用正在帮助人们更加直观地理解空间数据&#xff0c;提供更高效的决策支持。…

入侵他人电脑,实现远程控制(待补充)

待补充 在获取他人无线网网络密码后&#xff0c;进一步的操作是实现入侵他人电脑&#xff0c;这一步需要获取对方的IP地址并需要制作自己的代码工具自动化的开启或者打开对方的远程访问权限。 1、获取IP地址&#xff08;通过伪造的网页、伪造的Windows窗口、hook&#xff0c;信…

零基础微信小程序开发——小程序的宿主环境(保姆级教程+超详细)

&#x1f3a5; 作者简介&#xff1a; CSDN\阿里云\腾讯云\华为云开发社区优质创作者&#xff0c;专注分享大数据、Python、数据库、人工智能等领域的优质内容 &#x1f338;个人主页&#xff1a; 长风清留杨的博客 &#x1f343;形式准则&#xff1a; 无论成就大小&#xff0c;…