Bird
Raised Fist0
Tailwindmarkup~5 mins

Column spanning in Tailwind

Choose your learning style10 modes available
Introduction

Column spanning lets a box stretch across multiple columns in a grid. It helps organize content clearly and nicely.

You want a heading to stretch across all columns in a grid.
You need a wide image or button that covers more than one column.
You want to make some content stand out by making it wider than others.
You are building a layout with different sized boxes in a grid.
You want to control how many columns a box uses on different screen sizes.
Syntax
Tailwind
col-span-{n}

// where n is the number of columns to span

Use col-span-{n} to make an element span n columns.

Make sure the parent container uses grid and defines columns with grid-cols-{number}.

Examples
The first box stretches across 2 columns, the second box fills the last column.
Tailwind
<div class="grid grid-cols-3 gap-4">
  <div class="col-span-2 bg-blue-300">Spans 2 columns</div>
  <div class="bg-green-300">Spans 1 column</div>
</div>
The header spans all 4 columns, boxes below each take 1 column.
Tailwind
<div class="grid grid-cols-4 gap-2">
  <div class="col-span-4 bg-red-200">Full width header</div>
  <div class="bg-yellow-200">Box 1</div>
  <div class="bg-yellow-200">Box 2</div>
  <div class="bg-yellow-200">Box 3</div>
  <div class="bg-yellow-200">Box 4</div>
</div>
Two boxes each span 3 columns, splitting the grid in half.
Tailwind
<div class="grid grid-cols-6 gap-3">
  <div class="col-span-3 bg-purple-300">Half width box</div>
  <div class="col-span-3 bg-purple-500">Other half</div>
</div>
Sample Program

This example shows a grid with 4 columns. The header stretches across all columns. Box 2 spans 2 columns, and Box 4 spans 3 columns. Others fill 1 column each.

Tailwind
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <title>Tailwind Column Spanning Example</title>
  <script src="https://cdn.tailwindcss.com"></script>
</head>
<body class="p-6">
  <main class="max-w-xl mx-auto">
    <h1 class="text-xl font-bold mb-4">Grid with Column Spanning</h1>
    <section class="grid grid-cols-4 gap-4">
      <div class="col-span-4 bg-blue-400 text-white p-4 rounded">Header spanning all 4 columns</div>
      <div class="bg-blue-200 p-4 rounded">Box 1</div>
      <div class="col-span-2 bg-blue-300 p-4 rounded">Box 2 spans 2 columns</div>
      <div class="bg-blue-200 p-4 rounded">Box 3</div>
      <div class="col-span-3 bg-blue-500 text-white p-4 rounded">Box 4 spans 3 columns</div>
    </section>
  </main>
</body>
</html>
OutputSuccess
Important Notes

Column spanning only works inside a grid container.

Use gap-{size} classes to add space between grid items.

You can combine column spanning with responsive prefixes like md:col-span-2 to change span on different screen sizes.

Summary

Use col-span-{n} to make an element cover multiple columns in a grid.

Make sure the parent uses grid and defines columns with grid-cols-{number}.

Column spanning helps create flexible and clear layouts.

Practice

(1/5)
1. What does the Tailwind class col-span-3 do in a grid layout?
easy
A. Creates 3 columns inside the element
B. Adds 3 columns to the grid container
C. Makes the element span across 3 columns in the grid
D. Sets the element width to 3rem

Solution

  1. Step 1: Understand the role of col-span-{n}

    The class col-span-3 tells the element to cover 3 columns in the grid layout.
  2. Step 2: Differentiate from other grid classes

    It does not create columns or set width; it only controls how many columns the element spans.
  3. Final Answer:

    Makes the element span across 3 columns in the grid -> Option C
  4. Quick Check:

    col-span-3 = span 3 columns [OK]
Hint: Remember col-span controls how many columns an item covers [OK]
Common Mistakes:
  • Confusing col-span with grid-cols which sets columns on container
  • Thinking col-span creates columns inside the element
  • Assuming col-span sets fixed width in rem or px
2. Which of the following is the correct way to make a grid container with 4 columns and an item that spans 2 columns in Tailwind?
easy
A.
Item
B.
Item
C.
Item
D.
Item

Solution

  1. Step 1: Set up the grid container with 4 columns

    The class grid-cols-4 inside a grid container creates 4 columns.
  2. Step 2: Make the item span 2 columns

    The class col-span-2 on the item makes it cover 2 columns.
  3. Final Answer:

    <div class='grid grid-cols-4'><div class='col-span-2'>Item</div></div> -> Option B
  4. Quick Check:

    grid-cols-4 + col-span-2 = correct syntax [OK]
Hint: Use grid-cols on container, col-span on item [OK]
Common Mistakes:
  • Swapping order of grid and grid-cols classes
  • Using incorrect class like span-col-2 instead of col-span-2
  • Setting col-span larger than grid-cols
3. Given this code snippet, what will be the visual layout of the grid items?
<div class='grid grid-cols-3 gap-4'>
  <div class='col-span-2 bg-blue-300'>A</div>
  <div class='bg-red-300'>B</div>
  <div class='bg-green-300'>C</div>
</div>
medium
A. Item A spans 2 columns in the first row, B occupies the third column in the first row, C starts a new row
B. Items A, B, and C all appear in the first row, each spanning one column
C. Item A spans 3 columns, B and C are below in separate rows
D. Item A spans 2 rows, B and C are side by side in the first row

Solution

  1. Step 1: Analyze grid container and columns

    The container has 3 columns with gaps. Item A spans 2 columns, so it fills columns 1 and 2 in the first row.
  2. Step 2: Position of items B and C

    Item B fills the remaining 1 column in the first row (column 3). Item C moves to the next row occupying the first column.
  3. Final Answer:

    Item A spans 2 columns in the first row, B occupies the third column in the first row, C starts a new row -> Option A
  4. Quick Check:

    col-span-2 + grid-cols-3 layout = Item A spans 2 columns in the first row, B occupies the third column in the first row, C starts a new row [OK]
Hint: Count columns and span to place items visually [OK]
Common Mistakes:
  • Assuming all items fit in one row regardless of span
  • Thinking col-span affects rows instead of columns
  • Ignoring grid gaps affecting spacing
4. Identify the error in this Tailwind grid code:
<div class='grid grid-cols-3'>
  <div class='col-span-4 bg-yellow-200'>Item 1</div>
  <div>Item 2</div>
</div>
medium
A. col-span-4 is invalid because the grid has only 3 columns
B. Missing gap class for spacing between columns
C. The grid container is missing the grid class
D. The second div should also have a col-span class

Solution

  1. Step 1: Check grid container columns

    The container has 3 columns defined by grid-cols-3.
  2. Step 2: Validate col-span value

    The item uses col-span-4, which tries to span 4 columns, exceeding the 3 columns available.
  3. Final Answer:

    col-span-4 is invalid because the grid has only 3 columns -> Option A
  4. Quick Check:

    col-span cannot exceed grid-cols [OK]
Hint: col-span must be ≤ grid-cols count [OK]
Common Mistakes:
  • Ignoring that col-span cannot be larger than grid-cols
  • Thinking missing gap causes layout error
  • Assuming grid class is missing when it is present
5. You want to create a responsive grid where an item spans 4 columns on large screens but only 2 columns on small screens. Which Tailwind classes achieve this?
hard
A. grid grid-cols-6 col-span-2 sm:col-span-4
B. grid grid-cols-4 col-span-4 sm:col-span-2
C. grid grid-cols-6 col-span-4 sm:col-span-2
D. grid grid-cols-6 col-span-2 lg:col-span-4

Solution

  1. Step 1: Define grid with enough columns

    Using grid-cols-6 gives 6 columns, enough for spanning 4 columns on large screens.
  2. Step 2: Set default and large screen spans

    col-span-2 applies by default (small screens). lg:col-span-4 overrides on large screens to span 4 columns.
  3. Final Answer:

    grid grid-cols-6 col-span-2 lg:col-span-4 -> Option D
  4. Quick Check:

    Responsive col-span with lg: prefix = grid grid-cols-6 col-span-2 lg:col-span-4 [OK]
Hint: Use responsive prefixes like lg: for different spans [OK]
Common Mistakes:
  • Using sm: prefix for large screen changes
  • Setting col-span larger than grid-cols
  • Not defining enough columns in grid-cols
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard