Centering a div is a fundamental CSS skill. Whether horizontal, vertical, or both, here are seven ways to achieve it effectively:
1. Using Flexbox
Flexbox simplifies centering with justify-content and align-items.
.parent {
display: flex;
justify-content: center; /* Horizontal */
align-items: center; /* Vertical */
height: 100vh; /* Full height */
}
2. Using Grid Layout
CSS Grid provides a quick way to center elements with place-items.
.parent {
display: grid;
place-items: center; /* Centers horizontally and vertically */
height: 100vh;
}
3. Using margin: auto
This method is great for horizontally centering block elements.
.child {
margin: auto;
width: 200px;
height: 100px;
}
For vertical centering, combine it with position and transform.
4. Using position and transform
This technique is ideal for absolute positioning.
.child {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
5. Using Text Alignment
For inline or inline-block elements, text-align centers them horizontally.
.parent {
text-align: center;
}
.child {
display: inline-block;
}
6. Using Table Display
This method uses display: table and display: table-cell for centering.
.parent {
display: table;
height: 100vh;
}
.child {
display: table-cell;
text-align: center; /* Horizontal */
vertical-align: middle; /* Vertical */
}
7. Using line-height for Text
This approach works well for centering single-line text within a div.
.child {
height: 100px;
line-height: 100px; /* Matches height */
text-align: center;
}
Conclusion
These seven methods cover the most common use cases for centering a div. Flexbox and Grid are ideal for modern layouts, while older methods like position and margin are useful for specific scenarios.
Which method do you use most often?
Buymecoffee at https://ko-fi.com/codewithdhanian

Top comments (0)