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