Horizontal & Vertical centring using flexbox module
Aligning content vertically inside a DIV or a box has always been an issue in CSS. There was some tricks available with display: table
and display: table-cell
properties. But it was never convenient to implement, until flexbox module came into the existence.
With Flexbox, one can align anything (vertically or horizontally) with the align-items
and justify-content
properties.
The align-items
property specifies the vertical alignment of contents inside the flex container and the justify-content
property allows the content to align horizontally.
Code you need to use for horizontal and vertical centring of content is:
display: flex; align-items: center; justify-content: center;
Note: You can use flexbox modules for particular parts of your page, its not mandatory to create whole layout using flexbox properties.
Complete example with HTML and CSS code:
html, body { height: 100%; } body { margin: 0; } .flex-container { height: 100%; padding: 0; margin: 0; display: flex; align-items: center; justify-content: center; flex: 1 0 auto; } .flex-item { background-color: red; padding: 5px; width: 100px; height: 100px; line-height: 100px; margin: 10px; color: white; font-weight: bold; font-size: 2em; text-align: center; }
<div class="flex-container"> <div class="flex-item">1</div> <div class="flex-item">2</div> <div class="flex-item">3</div> <div class="flex-item">4</div> </div>
About the author
Jaspreet Kaur
Jaspreet is a UI/UX designer with expertise in front-end development for web and mobile. She is passionate about designing solutions through collaboration, iteration, and following the best technology development practices.