
In web development, the two most commonly used CSS technologies for creating page layouts are Flexbox and CSS Grid. Both offer powerful tools for building modern and responsive layouts, but they serve different purposes. In this article, we’ll explore how Flexbox and CSS Grid work, when to use each, and how to apply them with practical examples.
1. Flexible Layouts with Flexbox
Flexbox (Flexible Box Layout) is ideal for one-dimensional layouts — either row or column-based. It's used to align items horizontally or vertically and manage spacing between them flexibly.
Basic Flexbox Structure
.container {
display: flex; /* Enables Flexbox */
justify-content: center; /* Centers items horizontally */
align-items: center; /* Centers items vertically */
gap: 20px; /* Space between items */
}
.item {
width: 100px;
height: 100px;
background-color: steelblue;
color: white;
display: flex;
align-items: center;
justify-content: center;
}
Key Flexbox Properties
display: flex;
→ Enables Flexbox.justify-content
→ Controls horizontal alignment (center
,space-between
,space-around
).align-items
→ Controls vertical alignment (center
,flex-start
,flex-end
).flex-wrap: wrap;
→ Allows items to wrap onto multiple lines.
Flexbox Example
<div class='container'>
<div class='item'>1</div>
<div class='item'>2</div>
<div class='item'>3</div>
</div>
This layout places three items centered horizontally.
2. Advanced Layouts with CSS Grid
CSS Grid is used to create two-dimensional layouts (rows and columns). It’s ideal for more complex page structures.
Basic CSS Grid Structure
.grid-container {
display: grid; /* Enables Grid layout */
grid-template-columns: repeat(3, 1fr); /* 3 equal columns */
grid-gap: 20px; /* Gap between grid cells */
}
.grid-item {
background-color: darkorange;
color: white;
padding: 20px;
text-align: center;
}
CSS Grid Example
<div class='grid-container'>
<div class='grid-item'>1</div>
<div class='grid-item'>2</div>
<div class='grid-item'>3</div>
<div class='grid-item'>4</div>
<div class='grid-item'>5</div>
<div class='grid-item'>6</div>
</div>
This layout creates a structure with 3 columns and 2 rows.
Key CSS Grid Properties
grid-template-columns
→ Defines column count and width.grid-template-rows
→ Sets row heights.grid-gap
→ Specifies spacing between items.grid-template-areas
→ Used to define named layout areas.
3. Flexbox vs. Grid Comparison
Feature | Flexbox | CSS Grid |
---|---|---|
Use Case | One-dimensional layouts | Two-dimensional layouts |
Main Alignment | Row or column-based | Row and column combined |
Flexibility | Supports growing/shrinking items | Cell-based structure |
Item Placement | Single-axis alignment | Complex layout control |
Best For | Navigation bars, button groups | Full page layouts, panels |
- Simple layouts, button groups, navigation menus.
- Aligning elements in a row or column.
- Complex page layouts.
- Card grids, gallery displays.
Both Flexbox and CSS Grid are essential tools in modern web design. Flexbox is perfect for aligning elements in one direction, while CSS Grid excels at managing complex, two-dimensional structures.
- ✅ Use Flexbox for aligning UI components.
- ✅ Use CSS Grid for full-page or section layouts.
By combining both, you can build more flexible and user-friendly designs!
Related Articles

Dark Mode with CSS: Theme Switching
