div:not([class]) {
/* em is to manage the text length and so is the font-sfamily and line-height */
--s:10em; /*Size of the circle */
font-family:verdana;
font-size:16px;
line-height:1.25em;
text-align:justify;
width: var(--s);
height: var(--s);
border-radius: 50%;
background: #333;
color:#fff;
display:inline-block;
vertical-align:middle;
margin:5px;
}
div[class]:before {
content: '';
float: left;
clear: left;
height: calc(var(--s)/2);
width: calc(var(--s)/2);
/*background*/ shape-outside: radial-gradient( circle at bottom right, transparent 69%, red 69%);
}
div[class][id]:before {
/*background*/ shape-outside: radial-gradient( circle at top right, transparent 69%, red 69%);
}
div[class]:after {
content: '';
float: right;
clear: right;
height: calc(var(--s)/2);
width: calc(var(--s)/2);
/*background*/ shape-outside: radial-gradient( circle at bottom left, transparent 69%, red 69%);
}
div[class][id]:after {
/*background*/ shape-outside: radial-gradient( circle at top left, transparent 69%, red 69%);
}
/* extra */
body {
background: #399;
margin: 0;
}
<div>
<div class=shape></div>
<div class=shape id=idAttribute></div>
Lorem ipsum dolor sit amet, eget orci, tinci dunt place rat in sociis. Pel lentes que ultri cies.
</div>
<div style="--s:20em">
<div class=shape></div>
<div class=shape id=idAttribute></div>
Lorem ipsum dolor sit amet, eget orci, tinci dunt place rat in sociis. Pel lentes que ultri cies. Lorem ipsum dolor sit amet, eget orci, tinci dunt place rat in sociis. Pel lentes que ultri cies. Lorem ipsum dolor sit amet, eget orci, tinci dunt place rat in sociis. Pel lentes que ultri cies. Lorem ipsum dolor sit amet, eget orci, tinci dunt place rat in sociis. Pel lentes que ultri cies. Lorem ipsum dolor sit amet, eget orci. orci. rat
</div>