0

0

CSS如何制作一条环绕边框移动的发光线条

P粉602998670

P粉602998670

发布时间:2026-03-11 11:43:22

|

797人浏览过

|

来源于php中文网

原创

纯css环绕发光边框应使用伪元素+渐变背景+background-clip,通过background-position动画实现四边流动光效;避免用border/outline动画或border-image,ie需降级为box-shadow呼吸动画。

css如何制作一条环绕边框移动的发光线条

box-shadow + animation 实现环绕发光边框

纯 CSS 能做,但“环绕移动”不是指边框自己转圈,而是光效沿四边依次亮起再消失,形成流动感。核心是用多层 box-shadow 模拟光晕,配合 @keyframes 控制偏移位置。

常见错误是直接给 border 加动画——border 本身不支持路径动画,硬改 border-colorborder-width 只能闪烁,无法形成流动轨迹。

  • 只对块级元素生效(display: blockinline-block
  • 发光强度靠 box-shadow 的模糊半径(如 0 0 12px #00f)和扩散距离控制
  • 动画必须作用于 box-shadowxy 偏移量,不能动颜色或模糊值
div {
  position: relative;
  width: 200px;
  height: 120px;
  background: #111;
}
div::before {
  content: '';
  position: absolute;
  top: -4px; right: -4px; bottom: -4px; left: -4px;
  border: 2px solid transparent;
  animation: border-glow 3s linear infinite;
  background: linear-gradient(45deg, #00f, #0ff, #0f0, #ff0, #f00, #f0f, #00f);
  background-size: 300% 300%;
}
@keyframes border-glow {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

为什么不用 outlineborder-image

outline 不支持圆角裁剪、无法独立控制四边,且动画时会跳变;border-image 虽可切图,但要手动拼接发光路径,响应式下极易错位,维护成本高。

真正轻量又可控的方式是伪元素 + 渐变背景 + background-clip

Grammarly
Grammarly

Grammarly是一款在线语法纠正和校对工具,伟大的AI辅助写作工具

下载

立即学习前端免费学习笔记(深入)”;

  • border-imageslice 值稍有偏差,发光线条就会在角上断裂
  • 所有现代浏览器都支持 background-clip: border-box,但 Safari 旧版需加 -webkit- 前缀
  • 渐变角度设为 45deg 是为了在矩形上拉出连续色带,避免水平/垂直方向出现色块断层

移动端适配和性能陷阱

在 iOS Safari 上,background-position 动画如果没加 will-change: background-position,容易卡顿或掉帧;同时,background-size 过大会让渲染变慢。

  • background-size 控制在 200% ~ 300% 之间,再大无意义,反而吃 GPU
  • 动画时长别低于 2s,太快人眼识别不出流动感,还增加重绘压力
  • 避免在 :hover 里触发该动画——iOS 不支持 hover,且会引发意外重绘
  • 真机调试时发现发光变暗?可能是开启了深色模式,#00f 在深灰背景上对比度不足,建议用 hsl(240, 100%, 60%) 替代固定色值

IE 和老版 Edge 完全不支持怎么办

IE11 及更早版本不支持 background-clip: border-boxbackground-position 动画,也没有 ::before 多层伪元素叠加能力。这时候只能降级:用单色 box-shadow 循环缩放模拟“呼吸感”,而非“环绕感”。

  • 降级方案示例:box-shadow: 0 0 8px #0af, 0 0 16px #0af, 0 0 24px #0af 配合 opacity 动画
  • 不要试图用 SVG <filter></filter> 模拟——IE 对 SVG filter 支持极差,且性能爆炸
  • 如果项目必须兼容 IE,建议用 JS 插件(如 anime.js)驱动 canvas 绘制光带,CSS 方案直接放弃

最常被忽略的是:发光线条的“环绕”本质是视觉暂留效果,不是精确路径追踪。只要人眼觉得它在走,参数就达标了——别在 background-position 里塞小数点后三位精度,没用。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
edge是什么浏览器
edge是什么浏览器

Edge是一款由Microsoft开发的网页浏览器,是Windows 10操作系统中默认的浏览器,其目标是提供更快、更安全、更现代化的浏览器体验。本专题为大家提供edge浏览器相关的文章、下载、课程内容,供大家免费下载体验。

1723

2023.08.21

IE浏览器自动跳转EDGE如何恢复
IE浏览器自动跳转EDGE如何恢复

ie浏览器自动跳转edge的解决办法:1、更改默认浏览器设置;2、阻止edge浏览器的自动跳转;3、更改超链接的默认打开方式;4、禁用“快速网页查看器”;5、卸载edge浏览器;6、检查第三方插件或应用程序等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

397

2024.03.05

如何解决Edge打开但没有标题的问题
如何解决Edge打开但没有标题的问题

若 Microsoft Edge 浏览器打开后无标题(窗口空白或标题栏缺失),可尝试以下方法解决: 重启 Edge:关闭所有窗口,重新启动浏览器。 重置窗口布局:右击任务栏 Edge 图标 → 选择「最大化」或「还原」。 禁用扩展:进入 edge://extensions 临时关闭插件测试。 重置浏览器设置:前往 edge://settings/reset 恢复默认配置。 更新或重装 Edge:检查最新版本,或通过控制面板修复

1034

2025.04.24

js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

530

2023.06.20

js获取当前时间
js获取当前时间

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

576

2023.07.28

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

760

2023.08.03

js是什么意思
js是什么意思

JS是JavaScript的缩写,它是一种广泛应用于网页开发的脚本语言。JavaScript是一种解释性的、基于对象和事件驱动的编程语言,通常用于为网页增加交互性和动态性。它可以在网页上实现复杂的功能和效果,如表单验证、页面元素操作、动画效果、数据交互等。

6175

2023.08.17

js删除节点的方法
js删除节点的方法

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

492

2023.09.01

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

22

2026.03.10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.9万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.5万人学习

CSS教程
CSS教程

共754课时 | 41.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号