前端高级技巧,如何让渐变边框动起来

欢迎来到前端的日常,前端宝典持续更新,目前已经有200+道面试题,更多面试题可以到 前端宝典 进行查看,快来刷题吧~

前言

在前端开发中,动态效果不仅可以提升用户体验,还能为页面增添视觉吸引力。CSS Houdini 是一项强大的技术,它允许开发者直接操作 CSS 的底层渲染机制,实现一些传统 CSS 无法完成的效果。今天,我们将探讨如何使用 CSS Houdini 实现一个动态旋转的边框效果。

什么是 CSS Houdini?

CSS Houdini 是一组新的 CSS API,允许开发者直接操作 CSS 的渲染过程。它包括 @propertyPaint WorkletAnimation Worklet 等功能。通过这些 API,开发者可以创建自定义的 CSS 属性和动画,实现复杂的视觉效果。

实现动态旋转边框

我们将使用 CSS Houdini 的 @property 来实现一个动态旋转的边框效果。以下是完整的代码示例:

html 复制代码
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta
      name="viewport"
      content="initial-scale=1.0, user-scalable=no, width=device-width"
    />
    <title>document</title>
    <style>
      body {
        background: #000;
      }
      .card::before {
        z-index: -1;
        filter: blur(20px);
      }
      .card::after {
        content: "";
        position: absolute;
        inset: 8px;
        background: #191c29;
        border-radius: inherit;
      }
      @property --direc {
        syntax: "<angle>";
        initial-value: 0deg;
        inherits: false;
      }
      .card {
        position: relative;
        width: 200px;
        height: 400px;
        margin: 100px auto;
        --direc: 0deg;
        color: red;
        background-image: linear-gradient(
          var(--direc),
          #5ddcff,
          #3c67e3,
          43%,
          #4e00c2
        );
        animation: rotate 3s linear infinite;
      }
      @keyframes rotate {
        to {
          --direc: 360deg;
        }
      }
    </style>
  </head>
  <body>
    <div class="card"></div>
    <script></script>
  </body>
</html>

代码解析

  1. HTML 结构

    • 一个简单的 div 元素,类名为 box,用于展示动态旋转的边框。
  2. CSS 样式

    • body :设置背景颜色,居中显示 box
    • .box :设置宽度、高度和背景颜色,使用 position: relativeoverflow: hidden 确保边框不会超出盒子。
    • .box::before :使用伪元素创建边框,设置 border 为透明,背景使用 linear-gradient 渐变效果。
    • @keyframes rotate :定义一个旋转动画,从 0deg360deg,持续时间为 5s,线性变化,无限循环。

实际应用场景

这种动态旋转边框效果可以应用于多种场景,例如登录页面、首页背景、卡片效果等。它可以为页面增添视觉吸引力,提升用户体验。

相关推荐
程序员海军16 小时前
2025年上半年前端技术圈生态总结分享
前端·vue.js·react.js
记忆怪 bug16 小时前
2025前端面试题及答案(详细)
前端
群联云防护小杜16 小时前
服务器异常负载排查手册 · 隐蔽进程篇
运维·服务器·前端·数据库·笔记·sql·tcp/ip
小小菜鸡ing17 小时前
简单爬一个小说页面 HTML 的title和内容
前端·html
IT_陈寒17 小时前
Spring Boot 3 + GraalVM:5个实战技巧让Java应用启动速度提升300%
前端·人工智能·后端
前端世界17 小时前
前端跨域终极指南:3 种优雅解决方案 + 可运行 Demo
前端·javascript·状态模式
无奈何杨17 小时前
CoolGuard风控系统配置评分卡、权重策略|QLExpress脚本
前端·后端
几度风雨见丹心17 小时前
vue+elementUI 进行表格行内新增及校验,同行其他输入框数据影响当前输入框校验结果
前端·vue.js·elementui
开发者小天17 小时前
在Ant Design Vue 中使用图片预览的插件
前端·javascript·vue.js·前端框架
华科云商xiao徐17 小时前
手把手教你用Go打造带可视化的网络爬虫
前端·爬虫