效果展示
代码部分
<!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>Document</title>
</head>
<body>
<div class="box">1234</div>
<style>
* {
margin: 0;
padding: 0;
}
.box {
display: flex;
justify-content: center;
align-items: center;
position: relative;
width: 180px;
height: 250px;
border-radius: 20px;
margin: 100px auto;
background-color: #000;
overflow: hidden;
z-index: 0;
}
.box::before {
content: '';
position: absolute;
z-index: -2;
width: 120px;
height: 120%;
background: linear-gradient(#03fcc6, #ff0296);
animation: rotates 3s linear infinite;
}
.box::after {
content: '';
position: absolute;
z-index: -1;
border-radius: 20px;
inset: 5px;
background-color: #FFF;
/* background-color: #0e1538; */
}
@keyframes rotates {
to {
transform: rotate(360deg);
}
}
</style>
</body>
</html>
代码解释
这段HTML代码定义了一个简单的页面,包含一个带有样式的div
元素。该元素使用CSS样式定义了一个具有渐变背景色、居中显示文本的矩形框。矩形框的外部轮廓由border-radius
属性定义为圆形,并通过overflow: hidden
属性隐藏溢出部分。在矩形框的前面和后面,使用CSS的::before
和::after
伪元素分别定义了一个动态旋转的背景和一个内边框。
一般添加上动画即可,但是如果div元素有内容显示就比较麻烦,这时需要调整层级关系以及背景颜色的搭配来简单的达到目的