61,128
社区成员




<div class="content"></div>
.content {
position: relative;
border: 2px solid red;
width: 200px;
height: 100px;
overflow: hidden;
border-top: none;
}
.content::before {
content: "";
position: absolute;
width: 100px;
left: 50px;
height: 50px;
border-radius: 60%;
border: 2px solid red;
top: -30px;
background-color: white;
z-index: 2;
}
.content::after {
content: "";
position: absolute;
width: 100%;
top: 0;
border:2px solid red;
z-index: 1;
}
<canvas id="canvasId" width="500" height="200"></canvas>
<script type="text/javascript">
var canvas = document.getElementById("canvasId");
var ctx = canvas.getContext("2d");
ctx.beginPath();
ctx.moveTo(400,2);
ctx.lineTo(498,2);
ctx.lineTo(498,198);
ctx.lineTo(2,198);
ctx.lineTo(2,2);
ctx.lineTo(100,2);
ctx.bezierCurveTo(150,2,150,100,250,100);
ctx.bezierCurveTo(350,100,350,2,400,2);
ctx.closePath();
ctx.stroke();
</script>
body {
background-image: url('image/16e121fdec95660f.jpg');
}
.square, .square > div {
box-sizing: border-box;
}
.square {
width: 300px;
position: fixed;
top: calc(50vh - 200px);
left: calc(50vw - 150px);
overflow: hidden;
}
.square > .s-top {
border: 1px solid #fff;
height: 170px;
border-radius: 5px 5px 0 0;
border-width: 1px 1px 0 1px;
}
.square > .s-middle {
border-left: 1px solid #fff;
height: 60px;
}
.square > .s-bottom {
border: 1px solid #fff;
height: 170px;
border-radius: 0 0 5px 5px;
border-width: 0px 1px 1px 1px;
}
.square > .s-half-circle {
border: 1px solid #fff;
position: absolute;
width: 30px;
height: 60px;
border-width: 1px 0px 1px 1px;
border-radius: 30px 0 0 30px;
top: calc(50% - 30px);
right: 0;
}
.square > .s-background {
border: 360px solid rgba(255,255,255,0.3);
position: absolute;
width: 780px;
height: 780px;
border-radius: 50%;
top: calc(50% - 390px);
right: -390px;
}
.circle {
width: 50px;
height: 50px;
border: 1px solid #fff;
border-radius: 50%;
position: absolute;
top: calc(50% - 25px);
left: calc(50% + 125px);
background-color: rgba(255,255,255,.3);
box-sizing: border-box;
}
<div class="square">
<div class="s-top"></div>
<div class="s-middle"></div>
<div class="s-bottom"></div>
<div class="s-half-circle"></div>
<div class="s-background"></div>
</div>
<div class="circle"></div>