Вы можете использовать clip-path
с формой круга, и хитрость заключается в том, чтобы убедиться, что 3 круга будут перекрываться:
* {
box-sizing:border-box;
}
.box {
margin:20px auto;
width:300px;
height:300px;
border-radius:50%;
display:flex;
flex-direction:column;
justify-content:center;
padding:10px;
}
.box button{
height:50px;
border:0;
font-size:18px;
background:#c1ab32;
color:#fff;
margin:10px 0;
}
.box button:first-child {
/* we offset by half the height and the margin*/
clip-path:circle(120px at 50% calc(100% + 20px + 25px));
}
.box button:nth-child(2) {
/* circle with radius of 120px at the center*/
clip-path:circle(120px at 50% 50%);
}
.box button:last-child {
clip-path:circle(120px at 50% calc(0% - 20px - 25px));
}
body {
background:pink;
}
<div class="box">
<button>first</button>
<button>second</button>
<button>third</button>
</div>
Похожая идея - закрасить фон радиальным градиентом, и вы также убедитесь, что это тот же круг:
* {
box-sizing:border-box;
}
.box {
margin:20px auto;
width:300px;
height:300px;
border-radius:50%;
display:flex;
flex-direction:column;
justify-content:center;
padding:10px;
}
.box button{
height:50px;
border:0;
font-size:18px;
color:#fff;
margin:10px 0;
}
.box button:first-child {
background:radial-gradient(circle 120px at 50% calc(100% + 20px + 25px),#c1ab32 99%,transparent 100%);
}
.box button:nth-child(2) {
background:radial-gradient(circle 120px at 50% 50%,#c1ab32 99%,transparent 100%)
}
.box button:last-child {
background:radial-gradient(circle 120px at 50% calc(0% - 20px - 25px),#c1ab32 99%,transparent 100%)
}
body {
background:pink;
}
<div class="box">
<button>first</button>
<button>second</button>
<button>third</button>
</div>
Вы также можете применить путь клипа к контейнеру:
* {
box-sizing:border-box;
}
.box {
margin:20px auto;
width:300px;
height:300px;
border-radius:50%;
display:flex;
flex-direction:column;
justify-content:center;
padding:10px;
border:1px solid;
clip-path:circle(120px at 50% 50%);
}
.box button{
height:50px;
border:0;
font-size:18px;
background:#c1ab32;
color:#fff;
}
.box button:nth-child(2) {
margin:20px 0;
}
body {
background:pink;
}
<div class="box">
<button>first</button>
<button>second</button>
<button>third</button>
</div>