Если вам действительно нужно решение только для CSS, вы можете создать черные круги с помощью подхода border-radius: 50%;
, объединить их с черным прямоугольником и смоделировать круглый вырез с обеих сторон белыми кругами.Вот как это работает:
Элементы одного круга могут быть созданы с использованием псевдоэлементов ::before
и ::after
.При некоторых позициях положение кругов можно отрегулировать правильно.
Это рабочий пример:
.drop {
background: black;
margin: 40px;
height: 20px;
width: 14px;
position: relative;
z-index: 10;
}
.drop::before,
.drop::after {
content: '';
position: absolute;
background: black;
border-radius: 50%;
}
.drop::before {
width: 30px;
height: 30px;
top: -25px;
left: -7px;
}
.drop::after {
width: 20px;
height: 20px;
top: 10px;
left: -3px;
}
.gaps::before,
.gaps::after {
content: '';
position: absolute;
background: white;
border-radius: 50%;
z-index: 10;
}
.gaps::before {
width: 22px;
height: 22px;
top: -3px;
left: -21px;
}
.gaps::after {
width: 22px;
height: 22px;
top: -2px;
left: 13px;
}
<div class="drop">
<div class="gaps"></div>
</div>
Хотя это почти идеально, я бы порекомендовал использовать SVG для этой проблемы, поскольку вы можете создать плавный контур и вам не нужно беспокоиться о позиционировании, размеры и отзывчивый дизайн.