边框流动渐变效果

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Animated Gradient Border</title>
    <link rel="stylesheet" href="styles.css" />
  </head>
  <body>
    <div class="gradient-border-container">
      <div class="gradient-border-content">Your content here</div>
    </div>
  </body>
</html>
:root {
  --container-width: 300px;
  --container-height: 200px;
  --border-radius: 10px;
  --border-width: 2px;
  --animation-duration: 8s;
}

.gradient-border-container {
  position: relative;
  width: var(--container-width);
  height: var(--container-height);
  border-radius: var(--border-radius);
}

.gradient-border-container::before {
  content: "";
  position: absolute;
  top: calc(-1 * var(--border-width));
  left: calc(-1 * var(--border-width));
  width: calc(100% + var(--border-width) * 2);
  height: calc(100% + var(--border-width) * 2);
  background: linear-gradient(
    135deg,
    #ff0080,
    #ff8000,
    #80ff00,
    #00ff80,
    #0080ff,
    #8000ff,
    #ff0080
  );
  border-radius: calc(var(--border-radius) + var(--border-width));
  z-index: -1;
  animation: animateGradient var(--animation-duration) linear infinite;
  background-size: 300%;
}

.gradient-border-content {
  background: white;
  width: 100%;
  height: 100%;
  border-radius: var(--border-radius);
  box-sizing: border-box;
}

@keyframes animateGradient {
  0% {
    background-position: 0% 50%;
  }
  100% {
    background-position: -300% 50%;
  }
}

.gradient-border-container:hover::before {
  animation-duration: calc(var(--animation-duration) / 2);
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。