纯css:一个好玩的按钮边框动态动画

思路:使用伪元素+动画来实现

代码:

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    * {
      padding: 0;
      margin: 0;
    }
  
    body {
      background: #000;
    }
  
    .wrap {
      width: 400px;
      height: 400px;
      display: flex;
      justify-content: center;
      align-items: center;
    }
  
    .btn {
      width: 80px;
      height: 30px;
      border-radius: 5px;
      color: #fff;
      text-align: center;
      position: relative;
      overflow: hidden;
    }
  
    /* 这是需要动画的一个div */
    .btn::before {
      display: inline-block;
      background: red;
      content: '';
      width: 80px;
      height: 80px;
      position: absolute;
      left: 50%;
      top: 50%;
      z-index: -2;
      transform-origin: left top;
      animation: 5s animate 0s infinite;
    }
  
    /* 这是需要把动画的div隐藏一部分的div*/
    .btn::after {
      display: inline-block;
      background: #3f3f3f;
      border-radius: 5px;
      content: '';
      --w: 2px;
      left: var(--w);
      top: var(--w);
      width: calc(100% - 2 * var(--w));
      height: calc(100% - 2 * var(--w));
      position: absolute;
      z-index: -1;
    }
  
    @keyframes animate {
      from {
        transform: rotate(0deg)
      }
  
      to {
        transform: rotate(360deg)
      }
    }
  </style>
  </head>

<body>
  <!-- 写一个按钮的边框在移动的css -->
  <div class="wrap">
    <span class="btn">Button</span>
  </div>
  </body>

</html>
相关推荐
雪隐1 小时前
个人电脑玩AI-16让5060 Ti给你打工——MiniMax H3 提速实录:从"泡杯茶等视频"到"视频等你",一张 5060 Ti 的自我修养
前端·人工智能·后端
FungLeo2 小时前
Flutter Web 中文字体困境与渲染器选择:CanvasKit vs HTML renderer 实战
前端·flutter·html
敲代码的玉米C2 小时前
我修的那个 bug,制造了另一个 bug
前端·人工智能·架构
gis开发之家2 小时前
《Vue3 从入门到大神50篇》Vue3 源码详解(二十):生命周期钩子源码解析 —— onMounted / onUpdated 如何实现?
前端·javascript·前端框架·vue3·vue3源码
Narrastory2 小时前
我用 Claude Code 写代码不到 2 小时,却花了 3 天做完这个软件—Vibe Coding 的正确姿势,是设计不是生成
前端·人工智能·github
Enaium2 小时前
我实现了KMP的SDL绑定并编写了高性能软光追
前端·kotlin
古夕2 小时前
本地正常线上白屏:一次路由切换后刷新恢复问题的排查与修复
前端·ai编程
栀鸢ouo2 小时前
解决Element Plus表格展开行横向溢出、滚动截断问题(项目实战方案)
前端·vue.js
用户39051332192882 小时前
写了5年JS,才发现这10个方法能少写一半代码
前端
平凡的阿泽2 小时前
我用TRAE Work手搓了一个「谁是卧底」小游戏
前端·javascript