Complete Overview of Centering in Flexbox CSS (Examples)

Complete Overview of Centering in Flexbox CSS (Examples)

Justify-content vs align-items vs align-content

You need to master both Flexbox and CSS Grid in order to professionally build modern websites & web apps. If you haven't mastered both of them yet, I highly recommend going through my CSS Course.

For centering with Flexbox, it's crucial to understand that Flexbox works with 1 direction: either horizontal (row) or vertical (column). The default flex-direction value is row (horizontal).

Given the default situation, we can center flex-items horizontally with justify-content:

CSS-Flexbox-Centering-Horizontally.png

And we can center flex-items vertically with align-items:

CSS-Flexbox-Centering-Horizontally-And-Vertically.png

If we have a lot of flex-items or flex-items that are big such that we want them them to wrap with flex-wrap: wrap, then we should use align-content to center them vertically:

CSS-Flexbox-Centering-Horizontally-And-Vertically-Align-Content.png

So: when flex-direction: row (the default), use justify-content for horizontal centering and align-items (for 1 row) or align-content (for multiple rows) for vertical centering.

Sometimes you need to change the flex-direction to column. Justify-content and align-items/align-content 'flip' in that case.

That means that now if you want to center the flex-items horizontally, you should use align-items:

CSS-Flexbox-Centering-Horizontally-When-Flex-Direction-Is-Column.png

Or if you have a lot of flex-items so that they wrap, use align-content:

CSS-Flexbox-Centering-Horizontally-When-Flex-Direction-Is-Column-Align-Content (1).png

To also center the flex-items vertically now, we should use justify-content:

CSS-Flexbox-Centering-Vertically-When-Flex-Direction-Is-Column-Justify-Content (2).png

By the way, I think CSS is the 'bottleneck' to most websites & web apps. I believe it's the highest-ROI skill you can master.

Before I mastered CSS, I lost a ton of time & energy fiddling around with CSS.

I was learning about advanced JavaScript topics when I couldn't even implement basic layouts in CSS...

So I created a CSS course to help you avoid the same mistake. Check it out here if you're interested.

Would you like to be notified when I release a new course? You'll get early bird discounts. Sign up for my newsletter here.

Also, I show projects of upcoming courses on social media, follow me here:

Facebook Twitter Instagram