I'm trying to put 5 div around a circle div, how can I achieve it ?
This is my code so far :
.main{
border: 2px dotted #000000;
border-radius: 50%;
width: 500px;
height: 500px;
}
.cirlce1{
height: 50px;
width: 50px;
border: 2px dotted #000000;
border-radius: 50%;
top: 50px;
}
.cirlce2{
height: 50px;
width: 50px;
border: 2px dotted #000000;
border-radius: 50%;
top: 50px;
}
<div class="main">
<div class="cirlce1"></div>
<div class="cirlce2"></div>
</div>
I want my output to be like

Thank you.
The key is to position the small circles absolutely in relation to the big one.
You can then center them using calc().
Finally a series of transforms is applied to each small circle, moving them to the outside edge, then rotating each one around the large circle by 1/5th of 360deg (72deg). If you're using a preprocessor such as SASS, this final step could be done using a loop.
.main {
position: relative;
border: 2px dotted #000000;
border-radius: 50%;
width: 500px;
height: 500px;
}
.circle {
position: absolute;
left: calc(50% - 25px);
top: calc(50% - 25px);
height: 50px;
width: 50px;
border: 2px dotted #000000;
border-radius: 50%;
}
.circle:nth-child(1) {
transform: translateX(250px);
}
.circle:nth-child(2) {
transform: rotate(72deg) translateX(250px);
}
.circle:nth-child(3) {
transform: rotate(144deg) translateX(250px);
}
.circle:nth-child(4) {
transform: rotate(216deg) translateX(250px);
}
.circle:nth-child(5) {
transform: rotate(288deg) translateX(250px);
}
<div class="main">
<div class="circle"></div>
<div class="circle"></div>
<div class="circle"></div>
<div class="circle"></div>
<div class="circle"></div>
</div>
You can set the position of the small circles as position: absolute; and then play with top, left, right or bottom for placing them on the desired place.
I recommend you to use % for setting the position so it will be responsive, but in the case the big circle size is static you can just set the position with px.
.main{
border: 2px dotted #000000;
border-radius: 50%;
width: 500px;
height: 500px;
}
.cirlce1{
position: absolute;
height: 50px;
width: 50px;
border: 2px dotted #000000;
border-radius: 50%;
top: 50%;
}
.cirlce2{
position: absolute;
height: 50px;
width: 50px;
border: 2px dotted #000000;
border-radius: 50%;
left: 50%;
}
<div class="main">
<div class="cirlce1"></div>
<div class="cirlce2"></div>
</div>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With