How can I make the below image using only html and css

You can do this using :after :pseudo-element with a single div.
body {
background: #88FF55;
}
div {
position: relative;
width: 150px;
height: 100px;
background: #01CC00;
}
div:after {
content: 'i';
color: #01CC00;
position: absolute;
font-size: 20px;
bottom: 0;
right: 0;
width: 30px;
font-weight: bold;
height: 30px;
text-align: right;
line-height: 44px;
border-top-left-radius: 100%;
background: white;
}
<div></div>
You could use radial-gradient for transparent cut.
body {
background: #88FF55;
}
div {
width: 150px;
height: 100px;
line-height: 188px;
text-align: right;
font-size: 16px;
font-weight: bold;
color: #01CC00;
background: -webkit-radial-gradient(100% 100%, circle, transparent 20px, #01CC00 22px);
background: -moz-radial-gradient(100% 100%, circle, transparent 20px, #01CC00 22px);
background: radial-gradient(100% 100%, circle, transparent 20px, #01CC00 22px);
}
<div>i</div>
Or you could use svg's clipPath.
body {
background: #88FF55;
}
div {
height: 100px;
background: #01CC00;
}
<svg width="150" height="100" viewBox="0 0 150 100">
<clipPath id="shape">
<path d="M2,2 L146,2 L146,76 A20,20 1,0 0 126,98 L2,98z" />
</clipPath>
<foreignObject clip-path="url(#shape)" width="150" height="100">
<div></div>
</foreignObject>
<text x="140" y="97" font-weight="bold" font-size="16" fill="#01CC00">i</text>
</svg>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With