纯CSS实现炫酷背景霓虹灯文字效果

如图所示,这是一个很炫酷的霓虹灯文字效果且背景炫酷,就像很多个灯光闪烁着不同的颜色。

本次文章将解析如何用CSS代码实现这个效果,根据上面的动图分析出我们要实现的几个主要功能点:

  • 整个背景中有平均分布的小点衬托中心区域
  • 文字闪烁效果如同霓虹灯一样
  • 文字背景呈多个平均分布的亮点
  • 背景亮点的颜色整体呈现渐变色变化
1. 默认背景色

首先我们来看看如何通过CSS创建一个多个小点背景效果。

1.1 设置根元素变量

:root伪类中,定义了一系列的CSS变量,这些变量在整个文档中都是可用的。例如,--rotate用于控制旋转动画的角度,而--radius--bg--width等用于定义背景和形状的基本属性。

:root {
  --rotate: 0deg;
  --radius: 12;
  --bg: hsl(210 30% 70% / 0.15);
  --width: 80;
  --height: 80;
  --border: 0;
  --blur: 10;
  --alpha: 0;
  font-family: 'Montserrat', sans-serif;
}
1.2 设计背景样式

body标签中设置了背景的基础样式,使用了径向渐变(radial-gradient)来创建一种特殊的纹理效果。配合 background-sizebackground-position 即可完成默认的背景效果。

body {
  background-color: #25282a;
  background-image: 
    radial-gradient(#535150a0 0.95px, transparent 0.95px),
    radial-gradient(#535150a0 0.95px, #25282a 0.95px);
  background-size: 38px 38px;
  background-position: 0 0, 19px 19px;
  min-height: 100vh;
  display: grid;
  place-content: center;
  padding: 0 10vw;
}

此时的背景效果如下:

2. 创建渐变背景旋转效果
2.1 旋转动画的实现

新增.back类利用conic-gradient来创建一个彩色圆环效果,而--rotate变量控制着这个圆环的旋转。这种效果通过@keyframes spin动画实现,其中--rotate的值在一定周期内从0deg变化到360deg,实现了一个完整的旋转周期。

.back {
  // 背景图像和渐变设置
  background-image: 
    radial-gradient(#53515010 1px, transparent 0),
    radial-gradient(#53515010 2px, #25282a 0),
    conic-gradient(from var(--rotate) at 50% 70%, hsl(0 0% 98% / .1) 0deg, #eec32d 72deg, #ec4b4b 144deg, #709ab9 216deg, #4dffbf 288deg, hsl(0 0% 98% / .1) 1turn);
  background-size: 
    5vmin 5vmin, 
    5vmin 5vmin,
    100% 100%;
  animation: spin 5s linear infinite;
}

@keyframes spin {
  0% { --rotate: 0deg; }
  100% { --rotate: 360deg; }
}

如果这里仅设置 conic-gradient 并配合 animation 动画的效果就是下面的样子:

但是再增加一个 radial-gradient 径向渐变并设置 background-size5vmin 5vmin 的显示区域。

radial-gradient(#53515010 2px, #25282a 0),

完成后的效果图:

这里需要注意的一点就是多个渐变设置的顺序,这里的 conic-gradient 要放置在后面才能完成这个效果。这种旋转效果不仅增加了页面的视觉吸引力,而且通过颜色的流动变换,为用户提供了一种动态的互动体验。它不仅是一种美学上的选择,也展示了CSS动画和渐变的强大功能。

2. 霓虹灯文字效果

接下来探讨如何实现背景中的霓虹灯文字效果。

2.1 文本的动态阴影效果

通过设置text-shadow属性,并使用自定义变量--color1--color4,为文本创建了动态的阴影效果。

.gd {
  color: rgb(182, 255, 192);
  --color1: pink;
  --color2: orangered;
  --color3: red;
  --color4: magenta;
  text-shadow: 
    0 0 10px var(--color1),
    0 0 20px var(--color2),
    0 0 40px var(--color3),
    0 0 80px var(--color4);
}
2.2 文本动画效果

基于添加好的阴影效果进一步增加动画效果,模拟灯光闪烁的效果,在动画中调整阴影的颜色和大小在一定时间内变化,从而产生动态效果。

flicker动画为文本添加了一个颜色和滤镜的变化效果。在动画的50%时刻,文本的颜色变为白色,同时增加滤镜的饱和度和色调发生变化,创建了一种“闪烁”效果。

will-change: filter, color;
filter: saturate(60%);
animation: flicker steps(100) var(--interval) 1s infinite;

@keyframes flicker {
  50% {
    color: white;
    filter: saturate(200%) hue-rotate(20deg);
  }
}
3. 悬停效果:增强用户交互

最后进一步增加用户的交互体验,当鼠标悬停的时候增加背景边框效果。.gd:hover选择器用于定义当鼠标悬停在元素上时的样式变化。默认边框不可见,在这里当鼠标悬停时,--border变量的值从0变为1,给元素添加了边框效果,从而增强了用户的交互体验。

.back {
  border: double calc(var(--border) * 1px) transparent;
}

.gd:hover {
  --border: 1;
}

增加悬停交互后的效果:

结语

本文详细解析了如何利用CSS的来创造炫酷动态渐变背景和霓虹灯文字效果。这种动效不仅对于前端开发者有启发,也为设计师和内容创作者提供了新的视角,去探索网页设计的无限可能性。

通过这段CSS代码的解析,我们可以看到CSS不仅是用来定义网页的基本样式,还可以创建复杂的视觉效果和动画。这些技术不仅提高了网页的美观性,还增强了用户的交互体验。随着前端技术的不断发展,我们可以期待更多创新的设计和实现,为网页带来更加丰富和动态的视觉效果。

关注公众号回复【 20231203 】可获取完整源代码~

参考

codepen.io/ghaste/pen/NWobwWb
codepen.io/erikjung/pen/XdWEKE


看完本文如果觉得有用,记得点个赞支持,收藏起来说不定哪天就用上啦~

专注前端开发,分享前端相关技术干货,公众号:南城大前端(ID: nanchengfe)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/215029.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

问CHAT:怎样保持数据库中数据的完整性?

CHAT回复:保持数据库中数据的完整性有以下一些方法: 1. 使用约束:数据库中的约束可以确保数据遵循特定的规则。 例如,我们可以使用 UNIQUE 约束防止在某列中插入重复值,使用 NOT NULL 约束防止插入空值,或…

模板、STL标准模板库

模板 通常 对 具有相同要求的结果或者类 提供一个模板,根据实际使用时传过来的数据类型,决定函数和类的具体实现。 模板可以让类或者函数支持一种类型,这种通用类型在实际运行的过程中可以使用任何数据类型。 这种编程方式也成为"泛型编…

景联文科技解读《2023人工智能基础数据服务产业发展白皮书》,助力解决数据标注挑战

前段时间,国家工业信息安全发展研究中心发布《2023人工智能基础数据服务产业发展白皮书》(以下简称“白皮书”)。 《白皮书》指出,2022年,中国人工智能基础数据服务产业的市场规模为45亿元,预计今年将达到5…

GEE:不同方向的线性检测算子

作者:CSDN @ _养乐多_ 本文将介绍在 Google Earth Engine(GEE)平台上,使用不同方向的线性检测算子进行卷积操作的代码框架、核心函数和多种卷积核,比如 E-W、NE-SW、N-S、NW-SE 方向检测算子等。 结果如下图所示, 文章目录 一、定向检测算子二、完整代码三、代码链接一…

2.1 Linux C 编程

一、Hello World 1、在用户根目录下创建一个C_Program,并在这里面创建3.1文件夹来保存Hellow World程序; 2、安装最新版nvim ①sudo apt-get install ninja-build gettext cmake unzip curl ②sudo apt install lua5.1 ③git clone https://github.…

【MySQL的DQL查询语句】

MySQL的DQL查询语句-----在Navicat下 将学生表导入Navicat中查询语句查询一整张表查询年龄大于22年龄大于22的女生查找文科的学生查找六班的学生计算学生的总分 (group by)合并两表 (join on xxxx)合并两张表 并求总分先合并在聚合…

JOSEF约瑟时间继电器ARTD-DC110V-2H2D 0.25-2.5s导轨安装

ARTD系列断电延时继电器: ARTD-220VDC-1H1D断电延时继电器;ARTD-220VDC-2H断电延时继电器; ARTD-220VDC-2H2D断电延时继电器;ARTD-220VDC-4H断电延时继电器; ARTD-110VDC-1H1D断电延时继电器;ARTD-110VD…

中介者模式 rust和java的实现

文章目录 中介者模式介绍实现javarustrust仓库 中介者模式 中介者模式(Mediator Pattern)又被称为 调停者模式 。 它定义了一个中介对象来封装一系列对象之间的交互关系。 中介者使各个对象之间不需要显式地相互引用,从而使耦合性降低&#…

CSS实现小球边界碰撞回弹

如何通过CSS实现一个物体在屏幕中无限的边界碰撞回弹呢?我们可以使用动画效果实现 代码 我们只做一个小球,通过定位属性叠加动画的方式, 让小球在屏幕中进行运动,通过设置animation的alternate属性来设置回弹。最后,只…

时间序列数据压缩算法简述

本文简单介绍了时间序列压缩任务的来源,压缩算法的分类,并对常见压缩算法的优缺点进行了简介,爱码士们快来一探究竟呀! 引言 时间序列数据是在许多应用程序和领域中生成的一种基本数据类型,例如金融、医疗保健、交通和…

Failed to connect to gitee.com port 443: Time out 连接超时提示【Bug已完美解决-鸿蒙开发】

文章目录 项目场景:问题描述原因分析:解决方案:解决方案1解决方案2:解决方案3:此Bug解决方案总结解决方案总结**心得体会:解决连接超时问题的三种方案**项目场景: 导入Sample时遇到导入失败的情况,并提示“Failed to connect to gitee.com port 443: Time out”连接超…

Git:分布式版本控制系统的崛起与演变

简介 Git是一个开源的分布式版本控制系统,旨在有效、高速地处理从很小到非常大的项目版本管理。它是由Linus Torvalds于2005年创建的,最初是为了服务于Linux内核开发的版本控制需求。Git通过强大的分支功能、高效的缓存机制以及可扩展的架构设计&#xf…

分享81个节日PPT,总有一款适合您

分享81个节日PPT,总有一款适合您 81个节日PPT下载链接:https://pan.baidu.com/s/1V0feg5pZ8C1Szycy40CrUw?pwd6666 提取码:6666 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,收集整理更不易…

BGP多跳及BGP4+

一、知识补充 1、BGP4 传统BGP-4只管理IPV4路由信息,对于使用其它网络程协议 (若IPV6等)的应用末给予支持。IETF对BGP-4扩展,提出BGP4,可以提供对IPV6、IPX和MPLS VPN的支持 (简单说: 扩展IPV6协议栈支持)。 2、全互联 在上一篇博文中提…

爬虫学习(一)

文章目录 文件目录结构打开文件操作 爬取网页的理解尝试 文件目录结构 打开文件操作 爬取网页的理解尝试 这个放回值为请求正常

C语言扫雷游戏

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、扫雷游戏的分析和设计1.1扫雷游戏的功能说明1.2数据结构的分析1.3文件结构设计 二、扫雷游戏的代码实现总结 前言 详细介绍扫雷游戏的思路和实现过程。 一…

泊车功能专题介绍 ———— 记忆泊车评价规程(征求意见稿)

文章目录 评价方法指标体系指标权重分配算分方法指标得分计算方法露天停车场一键召唤得分情况说明泊出能力得分情况说明水平划线车位——两侧存在静止车辆水平划线车位——两侧存在静止车辆且车位附近有静止直立儿童垂直划线车位——两侧存在静止车辆垂直划线车位——两侧存在静…

智能优化算法应用:基于JAYA算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于JAYA算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于JAYA算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.JAYA算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…

Java基础语法之数组

数组的定义与初始化 数组的创建 大体上有如下三种创建方式: int[]array1 {1,2,3,4,5}; int[]array2 new int[]{1,2,3,4,5}; int[]array3 new int[5];一般创建框架就是T[ ]new T[ ];T是数组中元素的类型,T[ ]是数组类型 如果是double[],则对应new …