<style>
* {
margin: 0;
padding: 0;
}
.box {
width: 200px;
height: 200px;
position: relative;
background: #000;
margin: 100px auto;
box-sizing: border-box;
}
.box::before,
.box::after {
transform: all .3s;
position: absolute;
content: "";
top: -2px;
right: -2px;
bottom: -2px;
left: -2px;
background: linear-gradient(45deg,rgba(247, 7, 7, 0.8),rgb(231, 216, 4),rgb(0, 255, 0));
z-index:-1;
box-sizing: border-box;
/* 可执行动画 */
/* animation: run 10s infinite linear; */
}
@keyframes run {
0%{
background: linear-gradient(45deg,rgba(238, 41, 238, 0.8),transparent,rgb(0, 255, 0));
}
25%{
background: linear-gradient(45deg,rgba(9, 243, 80, 0.8),transparent,rgb(34, 69, 224));
}
50%{
background: linear-gradient(45deg,rgba(243, 122, 9, 0.8),transparent,rgb(241, 18, 18));
}
100%{
background: linear-gradient(45deg,rgba(238, 41, 238, 0.8),transparent,rgb(0, 255, 0));
}
}
</style>
</head>
<body>
<div class="box"></div>
</body>
实现思路:
1.给需要添加边框的元素进行定位
2.通过给定位的元素添加伪元素::after ::before
3.通过改变伪元素的top,left,right,bottom值来实现边框
只保留下边框,只需将top,left,right都设置为0
.box::before,
.box::after {
transform: all .3s;
position: absolute;
content: "";
top: 0;
right: 0;
bottom: -2px;
left: 0;
background: linear-gradient(45deg,rgba(247, 7, 7, 0.8),rgb(231, 216, 4),rgb(0, 255, 0));
z-index:-1;
box-sizing: border-box;
}