CSS Flexbox
Create flexible one-dimensional rows and columns.

Creating layouts is one of the most important parts of web design. Before Flexbox, arranging elements side by side or centering content often required complicated CSS techniques. Flexbox, short for Flexible Box Layout, was introduced to make layout design easier, cleaner, and more responsive.
Flexbox helps developers align, arrange, and distribute space between elements inside a container. It is widely used in modern websites because it simplifies many common layout tasks.
Why Use Flexbox?
Flexbox helps developers:
- Align items easily
- Create responsive layouts
- Distribute space between elements
- Center content horizontally and vertically
- Build navigation menus, cards, and galleries
For example, a website navigation bar often contains a logo on the left and menu items on the right. Flexbox makes this layout simple to create.
Understanding Flex Containers and Flex Items
Flexbox works with two main parts:
- Flex Container
- Flex Items
The parent element becomes the flex container, and its child elements become flex items.
Example
<div class="container">
<div>Item 1</div>
<div>Item 2</div>
<div>Item 3</div>
</div>.container {
display: flex;
}By setting display: flex, all child elements become flex items and are placed in a row by default.
Flex Direction
The flex-direction property controls the direction of flex items.
Row Default
.container {
display: flex;
flex-direction: row;
}Items appear horizontally from left to right.
Column
.container {
display: flex;
flex-direction: column;
}Items appear vertically from top to bottom.
Justify Content
The justify-content property aligns items along the main axis.
Example
.container {
display: flex;
justify-content: center;
}Common values include:
- flex-start
- center
- flex-end
- space-between
- space-around
This property is useful for creating evenly spaced layouts.
Align Items
The align-items property aligns items along the cross axis.
Example
.container {
display: flex;
align-items: center;
}This vertically centers items inside the container.
Centering Content
One of the most popular uses of Flexbox is centering content.
Example
.container {
display: flex;
justify-content: center;
align-items: center;
}This centers content both horizontally and vertically.
Flex Wrap
By default, Flexbox tries to keep all items on a single line.
The flex-wrap property allows items to move onto new lines when needed.
Example
.container {
display: flex;
flex-wrap: wrap;
}This is especially useful for responsive layouts.
Gap Between Items
The gap property adds spacing between flex items.
Example
.container {
display: flex;
gap: 20px;
}This creates clean spacing without using margins.
Key Takeaways
- Flexbox is an important topic to understand.
- Start with small examples and practice one step at a time.
- Use the idea in simple projects so it becomes easier to remember.