Flex utilities help you arrange items easily in a row or column. They make your layout flexible and neat without writing extra CSS.
Flex utilities in Bootsrap
d-flex flex-row flex-column justify-content-start justify-content-center justify-content-end align-items-start align-items-center align-items-end flex-wrap flex-nowrap
Use d-flex to make an element a flex container.
Combine with flex-row or flex-column to set direction.
<div class="d-flex flex-row justify-content-center"> <button>One</button> <button>Two</button> <button>Three</button> </div>
<div class="d-flex flex-column align-items-start"> <p>Item 1</p> <p>Item 2</p> <p>Item 3</p> </div>
<div class="d-flex flex-row flex-wrap"> <div>Box 1</div> <div>Box 2</div> <div>Box 3</div> <div>Box 4</div> </div>
This example shows four blue boxes arranged in a row, centered horizontally and vertically, and wrapping to the next line if the screen is narrow. The boxes grow equally and have some spacing.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>Bootstrap Flex Utilities Example</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" /> <style> .box { background-color: #0d6efd; color: white; padding: 1rem; margin: 0.5rem; border-radius: 0.25rem; text-align: center; flex: 1 1 100px; } </style> </head> <body> <main class="container mt-4"> <h1>Flex Utilities Demo</h1> <section class="d-flex flex-row justify-content-center align-items-center flex-wrap"> <div class="box">Box 1</div> <div class="box">Box 2</div> <div class="box">Box 3</div> <div class="box">Box 4</div> </section> </main> </body> </html>
Use flex-wrap to allow items to move to the next line if they don't fit.
Combine justify-content-* and align-items-* to control horizontal and vertical alignment.
Remember to include Bootstrap CSS for these utilities to work.
Flex utilities help arrange items easily in rows or columns.
Use d-flex to start a flex container and add direction and alignment classes.
They make your layout responsive and neat without extra CSS.
Practice
d-flex do in a webpage layout?Solution
Step 1: Understand the role of
Thed-flexd-flexclass in Bootstrap applies CSS flexbox display to the container, making its children flex items.Step 2: Know the default flex direction
By default, flexbox arranges items in a horizontal row unless changed by other classes.Final Answer:
It makes the container a flexbox, arranging children in a row by default. -> Option DQuick Check:
d-flex= flex container row [OK]
- Thinking d-flex hides content
- Assuming d-flex sets fixed width
- Confusing d-flex with text color classes
Solution
Step 1: Identify the class for vertical flex direction
The classflex-columnchanges the flex direction from row (default) to column.Step 2: Confirm the container is flex
Thed-flexclass makes the container a flexbox, so combined withflex-column, items stack vertically.Final Answer:
d-flex flex-column -> Option CQuick Check:
Vertical flex = flex-column [OK]
- Using flex-row for vertical layout
- Confusing justify-content with direction
- Missing d-flex class for flex container
<div class="d-flex justify-content-center align-items-center" style="height: 100px;"> <div>Box</div> </div>
How will the inner <div> appear inside the outer container?
Solution
Step 1: Analyze the flex container classes
The container usesd-flex(flexbox),justify-content-center(horizontal center), andalign-items-center(vertical center).Step 2: Understand the effect on the inner box
These classes center the inner <div> horizontally and vertically inside the 100px height container.Final Answer:
The box will be centered horizontally and vertically inside the 100px tall container. -> Option AQuick Check:
justify-content-center + align-items-center = center both ways [OK]
- Assuming missing flex direction hides content
- Thinking box stretches width without flex-grow
- Confusing justify-content with vertical alignment
<div class="d-flex flex-column justify-content-center"> <div>Item 1</div> <div>Item 2</div> </div>
What is wrong if the items are not horizontally centered as expected?
Solution
Step 1: Understand flex-column and justify-content-center
In a column flex container,justify-content-centercenters items vertically along the main axis.Step 2: Check horizontal centering
To center items horizontally (cross axis),align-items-centeris needed but missing here.Final Answer:
Missingalign-items-centerto center items horizontally in column layout. -> Option BQuick Check:
Column layout needs align-items-center for horizontal centering [OK]
- Assuming justify-content-center centers horizontally in column
- Thinking flex-column disables centering
- Ignoring need for align-items in cross axis
Solution
Step 1: Understand responsive flex directions
Useflex-columnfor small screens (default) to stack vertically, andflex-lg-rowfor large screens to arrange horizontally.Step 2: Space items evenly on large screens
justify-content-betweenspaces items evenly across the container width on the main axis (horizontal in row).Final Answer:
d-flex flex-column flex-lg-row justify-content-between -> Option AQuick Check:
Responsive flex: column small, row large + spaced between [OK]
- Mixing up flex directions for screen sizes
- Forgetting justify-content-between for spacing
- Using justify-content-center instead of between
Ready to prove it?
Pass the test and this pattern moves unknown
