CSS3可以通过@keyframes
规则和animation
属性实现边框流动的效果。以下是一个简单的例子,演示如何使用CSS3制作一个边框流动的动画效果:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>边框流动动画</title>
<style>
.border-animation {
width: 200px;
height: 50px;
position: relative;
background-color: #f0f0f0;
border: 2px solid #333;
border-radius: 10px;
animation: border-flow 5s infinite alternate linear;
}
.border-animation::before {
content: '';
position: absolute;
top: -2px;
left: -2px;
right: -2px;
bottom: -2px;
border-radius: inherit;
z-index: -1;
background-color: #f0f0f0;
border: 2px solid #333;
animation: border-flow-inner 5s infinite alternate linear;
}
@keyframes border-flow {
0% {
box-shadow: 0 0 10px #333;
}
100% {
box-shadow: 0 0 20px #333;
}
}
@keyframes border-flow-inner {
0% {
box-shadow: inset 0 0 10px #333;
}
100% {
box-shadow: inset 0 0 20px #333;
}
}
</style>
</head>
<body>
<div class="border-animation"></div>
</body>
</html>
在这个例子中,.border-animation
类创建了一个带有背景色和边框的容器。::before
伪元素创建了一个内部的阴影以实现边框流动的效果。@keyframes border-flow
和@keyframes border-flow-inner
定义了流动的动画。通过animation
属性应用到元素上,并设置动画的时长、重复次数和计时函数。