效果展示
代码实战
<! DOCTYPE html >
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< meta http-equiv = " X-UA-Compatible" content = " IE=edge" >
< meta name = " viewport" content = " width=device-width, initial-scale=1.0" >
< title> border ranbom</ title>
< style>
img {
width : 380px;
}
.box {
display : flex;
align-items : center;
justify-content : center;
height : 400px;
width : 400px;
margin : auto;
border : solid 1px;
text-align : center;
}
.horse_run {
background-image : linear-gradient ( 90deg,
rgba ( 196, 233, 64, 0) 0%,
green 40%,
orange 40% 70%,
red 70% 100%) ,
linear-gradient ( 0deg,
red 30%,
orange 30% 60%,
green 60%,
rgba ( 196, 233, 64, 0) 100%) ,
linear-gradient ( -90deg,
rgba ( 196, 233, 64, 0) 0%,
green 40%,
orange 40% 70%,
red 70% 100%) ,
linear-gradient ( 0deg,
rgba ( 196, 233, 64, 0) 0%,
green 40%,
orange 40% 70%,
red 70% 100%) ;
background-repeat : no-repeat, no-repeat, no-repeat, no-repeat;
background-size : 100px 4px, 4px 100px, 100px 4px, 4px 100px;
background-position : -100px 0px, calc ( 100% - 0px) -100px, calc ( 100% + 100px) calc ( 100% - 0px) , 0px 0px;
animation : moveLine 6s infinite linear;
background-clip : content-box;
}
@keyframes moveLine {
0% {
background-position : -100px 0px, calc ( 100% - 0px) -100px, calc ( 100% + 100px) calc ( 100% - 0px) , 0px 0px;
}
5% {
background-position : 0px 0px, calc ( 100% - 0px) -100px, calc ( 100% + 100px) calc ( 100% - 0px) , 0px -100px;
}
30% {
background-position : 100% 0px, calc ( 100% - 0px) -100px, calc ( 100% + 100px) calc ( 100% - 0px) , 0px -100px;
}
35% {
background-position : calc ( 100% + 100px) 0px, calc ( 100% - 0px) 0px, calc ( 100% + 100px) calc ( 100% - 0px) , 0px -100px;
}
50% {
background-position : calc ( 100% + 100px) 0px, calc ( 100% - 0px) 100%, calc ( 100% + 100px) calc ( 100% - 0px) , -100px -100px;
}
55% {
background-position : calc ( 100% + 100px) 0px, calc ( 100% - 0px) calc ( 100% + 100px) , 100% calc ( 100% - 0px) , -100px calc ( 100% + 100px) ;
}
80% {
background-position : calc ( 100% + 100px) 0px, calc ( 100% - 0px) calc ( 100% + 100px) , 0px calc ( 100% - 0px) , 0px calc ( 100% + 100px) ;
}
85% {
background-position : calc ( 100% + 100px) 0px, calc ( 100% - 0px) calc ( 100% + 100px) , -100px calc ( 100% - 0px) , 0px 100%;
}
100% {
background-position : calc ( 100% + 100px) 0px, calc ( 100% - 0px) calc ( 100% + 100px) , -100px calc ( 100% - 0px) , 0px 0px;
}
}
</ style>
</ head>
< body>
< div class = " box horse_run" >
< img alt = " 图片"
src = " https://profile-avatar.csdnimg.cn/16a636bfaafa4441b119d1c92e27651e_tianxintiandisheng.jpg!1" >
</ div>
</ body>
</ html>
参考资料
css实现边框跑马灯效果(重点参考) MDN background-position MDN linear-gradient