如果我们要把一个矩形切割成如图所示,可以使用 clip-path来做切割
clip-path:polygon(x1 y1,x2 y2)里面的参数是切割后每个顶点的坐标,坐标的原点是div的左上角,每个顶点的坐标如下:
源码如下:
.box-wrap {
position: absolute;
left: 21%;
top: 0;
width: 100%;
height: 163px;
// border-radius: 50px 0px 50px 0px;
border: 1px solid #38e1ff;
background-color: #38e1ff4a;
box-shadow: 0 0 10px 2px #29baf1;
animation: slide 2s;
clip-path: polygon(
40px 0px,
100% 0px,
100% calc(100% - 40px),
calc(100% - 40px) 100%,
0px 100%,
0px 40px,
40px 0px
);
}
这时会出现一个问题:切割之后原div的边框和阴影都被切割了,采用::before ::after伪类元素给它加上源码如下:
.box-wrap::before {
content: "";
position: absolute;
top: 0;
left: -61.2px;
width: 100%;
height: 1px;
background: #38e1ff;
transform: rotate(-45deg); /* 向左倾斜45度 */
}
.box-wrap::after {
content: "";
position: absolute;
bottom: 0;
right: -61.2px;
width: 100%;
height: 1px;
background: #38e1ff;
transform: rotate(-45deg); /* 向右倾斜45度 *
}