I am currently trying to vertically center a flex container on a page.
I have a row of 4 circles that I would like to display in the middle of the page. However, the regular method of doing
margin:0;
position:absolute;
top: 50%;
throws away the flex and displays the circles incorrectly. Does anybody know how to make this work with flex?
Here is example code, HTML:
<div class="circles">
<div class="circle"></div>
<div class="circle"></div>
<div class="circle"></div>
<div class="circle"></div>
</div>
CSS:
.circles {
background: red;
display:flex;
flex-direction:row;
width: 500px;
}
.circle {
width: 124px;
height: 124px;
border-radius: 50%;
background: white;
}
I would like for the red area with the white circles to be displayed in the center of the page. Thanks in advance to those who respond.
What you've missed is the height of the "circles" class. Because without that, the browser can't know where to align them vertically. Below is the snippet code.
.circles {
background: red;
display:flex;justify-content:center;
width: 100%;
align-items:center;
height:100vh;
}
.circle {
width: 124px;
height: 124px;
border-radius: 50%;
background: white;
}
<div class="circles">
<div class="circle"></div>
<div class="circle"></div>
<div class="circle"></div>
<div class="circle"></div>
</div>