Column stacking helps your website look good on small screens by placing columns one on top of another instead of side by side.
Column stacking on mobile in Bootsrap
<div class="row"> <div class="col-md-6 col-12">Column 1</div> <div class="col-md-6 col-12">Column 2</div> </div>
Use col-md-6 to make columns side by side on medium and larger screens.
Use col-12 to make columns full width and stack on small screens.
<div class="row"> <div class="col-lg-4 col-12">Column 1</div> <div class="col-lg-4 col-12">Column 2</div> <div class="col-lg-4 col-12">Column 3</div> </div>
<div class="row"> <div class="col-sm-8 col-12">Wide column</div> <div class="col-sm-4 col-12">Narrow column</div> </div>
<div class="row"> <div class="col-6">Half width always</div> <div class="col-6">Half width always</div> </div>
This example uses Bootstrap classes to create two columns that sit side by side on medium and larger screens, but stack vertically on smaller screens like phones.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Bootstrap Column Stacking Example</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"> </head> <body> <main class="container mt-4"> <h1>Column Stacking on Mobile</h1> <p>Resize the browser window to see columns stack on small screens.</p> <div class="row border p-3"> <div class="col-md-6 col-12 bg-primary text-white p-3">Column 1</div> <div class="col-md-6 col-12 bg-secondary text-white p-3">Column 2</div> </div> </main> </body> </html>
The stacking happens because col-12 makes columns full width on small screens.
Time complexity is not relevant here, but remember that responsive design improves user experience.
Common mistake: forgetting to add col-12 for small screens, so columns stay side by side and look cramped.
Use Bootstrap grid classes with different breakpoints to control column stacking.
col-12 makes columns stack on small screens.
Combine with larger breakpoint classes like col-md-6 for side-by-side on bigger screens.
Practice
col-12 do on mobile screens?Solution
Step 1: Understand
The classcol-12meaningcol-12means the column will take all 12 parts of the grid, which is full width.Step 2: Effect on mobile screens
On small screens, columns withcol-12stack vertically because each takes full width.Final Answer:
Makes the column take full width and stack vertically -> Option AQuick Check:
col-12= full width stack [OK]
- Thinking col-12 means half width
- Assuming columns stay side-by-side on mobile
- Confusing col-12 with hiding columns
Solution
Step 1: Analyze mobile stacking
col-12makes columns full width on mobile, so they stack vertically.Step 2: Analyze medium screen layout
col-md-6makes columns half width on medium screens, so they sit side-by-side.Final Answer:
col-12 col-md-6-> Option DQuick Check:
Mobile stack = col-12, Medium side-by-side = col-md-6 [OK]
- Reversing col-12 and col-md-6 classes
- Using col-6 on mobile which prevents stacking
- Ignoring breakpoint order in class names
<div class='row'> <div class='col-12 col-md-4'>A</div> <div class='col-12 col-md-8'>B</div> </div>
How will columns appear on a small mobile screen?
Solution
Step 1: Check mobile classes
Both columns havecol-12which means full width on small screens, so they stack vertically.Step 2: Check medium screen classes
col-md-4andcol-md-8apply only on medium and larger screens, so no effect on mobile.Final Answer:
Columns A and B stacked vertically, each full width -> Option AQuick Check:
Mobile uses col-12, so stacked full width [OK]
- Thinking col-md-* affects mobile layout
- Assuming side-by-side on mobile
- Confusing widths on small screens
<div class='row'> <div class='col-md-6'>Left</div> <div class='col-md-6'>Right</div> </div>
Why do the columns NOT stack on mobile?
Solution
Step 1: Understand default column behavior
Withoutcol-*classes for small screens, columns try to share space equally side-by-side.Step 2: Add
Addingcol-12for mobile stackingcol-12makes columns full width on mobile, forcing vertical stacking.Final Answer:
You forgot to addcol-12to make columns full width on mobile -> Option BQuick Check:
Mobile stack needs col-12 class [OK]
- Assuming col-md-6 controls mobile layout
- Thinking row class prevents stacking
- Using col-sm-12 instead of col-12 for mobile
Solution
Step 1: Mobile stacking with full width
col-12makes columns full width on mobile, so they stack vertically.Step 2: Two columns side-by-side on tablets
col-md-6means on medium screens (tablets), columns take half width, so two fit side-by-side.Step 3: Three columns side-by-side on desktops
col-lg-4means on large screens (desktops), columns take 4/12 width, so three fit side-by-side.Final Answer:
col-12 col-md-6 col-lg-4-> Option CQuick Check:
Mobile stack = col-12, Tablet 2 cols = col-md-6, Desktop 3 cols = col-lg-4 [OK]
- Using col-sm instead of col-md for tablets
- Choosing wrong column widths that don't add up
- Forgetting col-12 for mobile stacking
Ready to prove it?
Pass the test and this pattern moves unknown
