Bootstrap 5 Tutorial

v5.3.0

Bootstrap 5 Tutorial

Column Reordering in Bootstrap 5

Column Reordering: Change the visual order of columns without changing HTML structure.

What is Column Reordering?

Column reordering allows you to change how columns appear visually, independent of their order in the HTML source. This is useful for responsive design and accessibility.

HTML Order
Column A (HTML: 1st)
Column B (HTML: 2nd)
Column C (HTML: 3rd)

Columns appear in HTML source order.

Reordered
Column A (Visual: 3rd)
Column B (Visual: 1st)
Column C (Visual: 2nd)

Columns appear in specified visual order.

Order Classes

Basic Order Classes
ClassEffectExample
order-firstMakes column appear firstVisual order: 1
order-lastMakes column appear lastVisual order: Last
order-0Natural order (default)Visual order: HTML order
order-1 to order-5Specific order position1 = first, 5 = last
.order-3
Appears third
.order-1
Appears first
.order-2
Appears second
<div class="row">
            <div class="col order-3">Appears third</div>
            <div class="col order-1">Appears first</div>
            <div class="col order-2">Appears second</div>
            </div>

Responsive Order Classes

Breakpoint-based Ordering
Example: Different Order on Different Screens
.order-md-1
First on desktop
.order-md-3
Last on desktop
.order-md-2
Middle on desktop
Screen SizeClasses AppliedVisual Order
Mobile (<768px)No order classesHTML order (1, 2, 3)
Desktop (≥768px)order-md-*Specified order (1, 3, 2)
<div class="row">
            <div class="col-md-4 order-md-1">First on desktop</div>
            <div class="col-md-4 order-md-3">Last on desktop</div>
            <div class="col-md-4 order-md-2">Middle on desktop</div>
            </div>

Order-first and Order-last

Quick Reordering Shortcuts
Using order-first
Column 1 (HTML first)
Column 2 (HTML second)
.order-first
Column 3 (HTML third, Visual first)
Using order-last
.order-last
Column 1 (HTML first, Visual last)
Column 2 (HTML second)
Column 3 (HTML third)
<!-- Make last column appear first -->
            <div class="row">
            <div class="col">1st in HTML</div>
            <div class="col">2nd in HTML</div>
            <div class="col order-first">3rd in HTML, 1st visually</div>
            </div>

            <!-- Make first column appear last -->
            <div class="row">
            <div class="col order-last">1st in HTML, last visually</div>
            <div class="col">2nd in HTML</div>
            <div class="col">3rd in HTML</div>
            </div>

Offset vs Order

Offset Classes

Offset moves columns to the right by adding empty space.

.offset-4
<div class="row">
            <div class="col-4 offset-4">
                <!-- Centered with empty space -->
            </div>
            </div>

Use case: Centering elements, creating gaps.

Order Classes

Order changes visual sequence without moving position.

.order-2
.order-1
<div class="row">
            <div class="col-4 order-2">Appears second</div>
            <div class="col-4 order-1">Appears first</div>
            </div>

Use case: Changing visual hierarchy, responsive reordering.

Practical Examples

Real-World Use Cases
Example 1: Mobile-First Navigation
Logo
.order-md-2
Navigation
.order-md-1 (First on desktop)
Search
.order-md-3
ScreenVisual OrderReason
MobileLogo, Search, Navigation (full width)Logo and search visible, nav in hamburger
DesktopNavigation, Logo, SearchNavigation first for usability
Example 2: Feature Section with Image

Image/Illustration

Appears on right on desktop

Content

Appears on left on desktop (better for reading flow)

On mobile: Content appears first, image second.

<!-- Image right, content left on desktop -->
            <div class="row align-items-center">
            <div class="col-md-6 order-md-2">
                <!-- Image (right on desktop) -->
            </div>
            <div class="col-md-6 order-md-1">
                <!-- Content (left on desktop) -->
            </div>
            </div>

Advanced Order Patterns

Pattern 1: Zigzag Layout
Image Left
Content Right
Content Left
Image Right

Alternating image/content layout for visual interest.

Pattern 2: Priority Content
Main Content
Sidebar (top on mobile)

Sidebar appears first on mobile, second on desktop.

Pattern 3: Call-to-Action Focus
Header
CTA Button
Content

CTA appears last for better conversion.

Responsive Reordering Strategies

Mobile-First Reordering
Strategy 1: Content Priority
  • Most important content first on mobile
  • Use order-md-* for desktop layout
  • Keep navigation accessible
<!-- Content first on mobile -->
            <div class="row">
            <div class="col-md-8 order-md-2">
                <!-- Main content (right on desktop) -->
            </div>
            <div class="col-md-4 order-md-1">
                <!-- Sidebar (left on desktop) -->
            </div>
            </div>
Strategy 2: Visual Hierarchy
  • Different visual flow on different devices
  • Consider reading patterns
  • Maintain logical structure
<!-- Different visual flow -->
            <div class="row">
            <div class="col-md-4 order-md-3">
                <!-- Last on desktop -->
            </div>
            <div class="col-md-4 order-md-1">
                <!-- First on desktop -->
            </div>
            <div class="col-md-4 order-md-2">
                <!-- Middle on desktop -->
            </div>
            </div>

Accessibility Considerations

Important Accessibility Notes
  • Screen readers follow HTML source order, not visual order
  • Don't use order classes to fix semantic issues
  • Ensure logical reading order in HTML
  • Test with screen readers if reordering significantly
  • Consider keyboard navigation flow

Common Order Class Combinations

ScenarioMobileDesktopClasses
Image right, content leftContent → ImageContent ← Imageorder-md-2 on image
Sidebar right on desktopSidebar firstSidebar lastorder-md-last on sidebar
Featured item firstItem lastItem firstorder-last order-md-first
Three column shuffleA, B, CB, C, Aorder-md-2, order-md-3, order-md-1

Troubleshooting Common Issues

IssueCauseSolution
Order not workingMissing .row wrapperEnsure columns are inside .row
Responsive order not applyingWrong breakpoint classUse correct breakpoint (md, lg, etc.)
Columns overlappingTotal order values conflictUse unique order values (1, 2, 3, etc.)
Mobile layout brokenMissing mobile column classesAdd col-12 or similar for mobile
Best Practices for Column Reordering
  • ✅ Use for visual presentation, not semantic structure
  • ✅ Test on multiple screen sizes
  • ✅ Keep HTML in logical reading order
  • ✅ Use responsive order classes for mobile-first design
  • ✅ Document complex reordering patterns
  • ✅ Consider accessibility implications