JSFiddle - React, Tailwind, and code Playground
HTML
<div class="wrap">
<div class="rect-left"><div class="inner"></div></div>
<div class="rect"> <span class="circle"></span><div class="avatar"></div></div>
<div class="rect-right"><div class="inner"></div></div>
</div>
CSS
body, html {
font-size: 18px;
}
body{
background-color: #fff
}
.avatar {
width: 90px;
height: 90px;
position: absolute;
background-color: red;
top: -115px;
left: 5px;
border-radius: 80px;
}
.wrap {
display: block;
margin: 100px auto 0 auto;
width:90%;
position: relative;
}
.rect-left,
.rect-right {
position: relative;
width: 50%;
height: 150px;
float: left;
}
.rect-left {
margin-left: -50px;
}
.rect-right {
margin-right: -50px;
}
.inner {
position: absolute;
top: 0;
left: 50px;
right: 0;
bottom: 0;
height: 100%;
background:rgba(0,0,0,0.8);
}
.rect-left .inner {
left:50px;
right: 0;
-webkit-border-top-left-radius: 6px;
-webkit-border-bottom-left-radius: 6px;
-moz-border-radius-topleft: 6px;
-moz-border-radius-bottomleft: 6px;
border-top-left-radius: 6px;
border-bottom-left-radius: 6px;
}
.rect-right .inner {
left:0;
right: 50px;
-webkit-border-top-right-radius: 6px;
-webkit-border-bottom-right-radius: 6px;
-moz-border-radius-topright: 6px;
-moz-border-radius-bottomright: 6px;
border-top-right-radius: 6px;
border-bottom-right-radius: 6px;
}
.rect
{
float: left;
height: 100px;
width: 100px;
background:rgba(0,0,0,0.8);
position:relative;
top: 50px;
}
.circle{
display:block;
width: 100px;
height: 50px;
top:-50px;
left:0;
overflow:hidden;
position:absolute;
}
.circle:after{
content:'';
width: 100px;
height: 100px;
-moz-border-radius: 100px;
-webkit-border-radius: 100px;
border-radius: 100px;
background:rgba(0,0,0,0);
position:absolute;
top:-110px;
left:-40px;
border:40px solid rgba(0,0,0,0.8);
}