CSS Vertical Align
Vertical Centering
Vertical centering in CSS can be achieved using modern layout techniques like Flexbox and Grid, or using positioning with transforms.
Center Align with Flexbox
With CSS flexbox you can center elements, both horizontally and vertically, within a flex container.
A flex container with both the justify-content and the
align-items properties set to
center will align the item(s) in the center (in both axis):
Example
.center {
display: flex;
justify-content: center;
align-items: center;
height: 200px;
border: 3px solid
green;
}
Try it Yourself »
Center Align with Grid
With CSS grid you can center elements, both horizontally and vertically, within a grid container.
A grid container with the place-items property set to center, will align the item(s) in the center (in both axis).
Example
.center {
display: grid;
place-items: center;
height: 200px;
border: 3px solid
green;
}
Try it Yourself »
Center Align with position and transform
If you deal with elements of unknown or dynamic dimensions, it is a common
technique to use position:
absolute; combined with transform: translate();
to center an element:
I am vertically and horizontally centered.
Example
.container p {
margin: 0;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
Try it Yourself »
Tip: You will learn more about the transform property in our 2D Transforms Chapter.