Я бы выбрал комбинацию радиального градиента / линейного градиента для достижения этого:
.box {
--b:20px; /* control the border */
--c:black; /* the color */
width:400px;
box-sizing:border-box;
margin:5px;
/*control the distance from top and bottom*/
border-top:20px solid transparent;
border-bottom:20px solid transparent;
/**/
padding:10px calc(var(--b) + 5px); /* make sure the padding is at least equal to the borders */
background:
radial-gradient(farthest-side at bottom right,var(--c) 98%,transparent 100%) top right /var(--b) var(--b),
radial-gradient(farthest-side at bottom left ,var(--c) 98%,transparent 100%) top left /var(--b) var(--b),
radial-gradient(farthest-side at top right,var(--c) 98%,transparent 100%) bottom right/var(--b) var(--b),
radial-gradient(farthest-side at top left ,var(--c) 98%,transparent 100%) bottom left /var(--b) var(--b),
linear-gradient(var(--c),var(--c)) left /var(--b) calc(100% - 2*var(--b)),
linear-gradient(var(--c),var(--c)) right/var(--b) calc(100% - 2*var(--b)),
yellow;
background-repeat:no-repeat;
}
<div class="box">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse suscipit quam eu nisi convallis aliquam. Donec non fringilla massa. Praesent malesuada leo lorem, non fermentum nulla auctor bibendum. Cras eget vestibulum ipsum. Nullam iaculis auctor odio id condimentum.
</div>
<div class="box" style="--b:40px;--c:blue">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse suscipit quam eu nisi convallis aliquam. Donec non fringilla massa. Praesent malesuada leo lorem, non fermentum nulla auctor bibendum. Cras eget vestibulum ipsum. Nullam iaculis auctor odio id condimentum. malesuada leo lorem, non fermentum nulla auctor bibendum. Cras eget vestibulum ipsum. Nullam iaculis auctor odio id condimentum.malesuada leo lorem, non fermentum nulla auctor bibendum. Cras eget vestibulum ipsum. Nullam iaculis auctor odio id condimentum.
</div>
<div class="box" style="--b:10px;--c:red">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse suscipit quam eu nisi convallis aliquam. Donec non fringilla massa. Praesent malesuada leo lorem, non fermentum nulla auctor bibendum. Cras eget vestibulum ipsum. Nullam iaculis auctor odio id condimentum. malesuada leo lorem, non fermentum nulla auctor bibendum. Cras eget vestibulum ipsum. Nullam iaculis auctor odio id condimentum.malesuada leo lorem, non fermentum nulla auctor bibendum. Cras eget vestibulum ipsum. Nullam iaculis auctor odio id condimentum.
</div>
Используйте разные цвета для каждого градиента, чтобы понять загадку:
.box {
--b:20px; /* control the border */
width:400px;
box-sizing:border-box;
margin:5px;
/*control the distance from top and bottom*/
border-top:20px solid transparent;
border-bottom:20px solid transparent;
/**/
padding:10px calc(var(--b) + 5px); /* make sure the padding is at least equal to the borders */
background:
radial-gradient(farthest-side at bottom right,red 98%,transparent 100%) top right /var(--b) var(--b),
radial-gradient(farthest-side at bottom left ,blue 98%,transparent 100%) top left /var(--b) var(--b),
radial-gradient(farthest-side at top right,green 98%,transparent 100%) bottom right/var(--b) var(--b),
radial-gradient(farthest-side at top left ,purple 98%,transparent 100%) bottom left /var(--b) var(--b),
linear-gradient(gray,gray) left /var(--b) calc(100% - 2*var(--b)),
linear-gradient(black,black) right/var(--b) calc(100% - 2*var(--b)),
yellow;
background-repeat:no-repeat;
}
<div class="box">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse suscipit quam eu nisi convallis aliquam. Donec non fringilla massa. Praesent malesuada leo lorem, non fermentum nulla auctor bibendum. Cras eget vestibulum ipsum. Nullam iaculis auctor odio id condimentum.non fermentum nulla auctor bibendum. Cras eget vestibulum ipsum. Nullam iaculis auctor odio id condimentum.non fermentum nulla auctor bibendum. Cras eget vestibulum ipsum. Nullam iaculis auctor odio id condimentum.
</div>