css中有一个属性叫做clip,用于修剪裁剪.配合其属性关键字rect可以实现元素的矩形裁剪效果.
top right bottom left 分别指最终裁剪可见区域的上边,右边,下边,左边.而所有的数值都表示位置,且是相对于原始元素的左上角而言的.
经典案例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
*{
margin: 0px;
padding: 0px;
}
body{
position: relative;
background-color: #0f222b;
}
.div1{
width: 200px;
height: 200px;
margin: 100px auto;
background: url(img/Button-White-Large.png) no-repeat 50%/70% rgba(0,0,0,0.1);
color: #69ca62;
box-shadow: inset 0 0 0 1px rgba(105,202,98,0.5);
}
.div1,.div1::before,.div1::after{
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
.div1::before,.div1::after{
content: '';
z-index: -1;
margin: -5%;
box-shadow: inset 0 0 0 2px;
animation: clipm 8s linear infinite;
}
.div1::before{
animation-delay: -4s;
}
.div1:hover::after,.div1:hover::before{
background-color: rgba(255,0,0,0.3);
}
@keyframes clipm{
0%{
clip: rect(0px,220.0px,2px,0px);/*裁剪*/
}
25%{
clip: rect(0px,2px,220.0px,0px);
}
50%{
clip: rect(218.0px,220.0px,220.0px,0px);
}
75%{
clip: rect(0px,220.0px,220.0px,218.0px);
}
100%{
clip: rect(0px,220.0px,2px,0px);
}
}
</style>
</head>
<body>
<div class="div1">
</div>
</body>
</html>