Вы можете создать эту форму, используя псевдоэлемент ::before
и фон linear-gradient
.
. Это работает так (я добавил границу для пояснения:
![enter image description here](https://i.stack.imgur.com/PNWcH.png)
Таким образом, вы можете создать очень плоский полукруг и расположить его так, как вам нравится. Кроме того, несколько строк текста не представляют никакой проблемы, поскольку круг всегда находится сверхуdiv. Вот рабочий пример:
.half-circle {
width: 100px;
text-align: center;
}
.half-circle::before {
content: "";
margin-bottom: 5px;
display: block;
height: 40px;
width: 100px;
background: linear-gradient(to bottom, transparent 0, transparent 50%, #0072f7 50%);
border-radius: 100%;
}
<div class="half-circle">
My name is<br />
somebody
</div>
Другой подход заключается в том, чтобы полностью заполнить псевдоэлемент и скрыть верхнюю половину с помощью overflow: hidden
:
.half-circle {
width: 100px;
text-align: center;
overflow: hidden;
}
.half-circle::before {
content: "";
display: block;
height: 40px;
width: 100px;
background: #0072f7;
border-radius: 100%;
transform: translateY(-50%);
}
<div class="half-circle">
My name is<br />
somebody
</div>
Конечно, вы должны использовать соответствующие префиксы поставщиков для совместимости браузера.