CSS column-span Property

Beginner
⏱️ 5 min read
📚 Updated: Jun 2026
🎯 4 Examples
Layout & Columns

What You’ll Learn

The column-span property lets an element break out of the column flow and stretch across every column in a multi-column container.

01

Span Columns

Full-width breakout.

02

none vs all

Two values only.

03

Default none

Normal column flow.

04

Headings

Article titles.

05

Callouts

Banners & quotes.

06

Magazine Layout

Newspaper-style.

Definition and Usage

The column-span CSS property specifies how many columns an element should span across in a multi-column layout. It is particularly useful when you want a specific element to break out of the column structure and span all columns, creating a visually distinct section within the layout.

Apply it to child elements inside a container that uses column-count or column-width. Common use cases include article headings, hero banners, pull quotes, and full-width dividers between sections of flowing text.

💡
Beginner Tip

column-span only accepts none or all — you cannot span exactly two of three columns. For partial spanning, use CSS Grid or Flexbox instead.

📝 Syntax

The syntax for column-span is simple — it takes one of two values: none or all.

syntax.css
selector {
  column-span: value;
}

Basic Example

column-span-all.css
.container {
  column-count: 3;
  column-gap: 20px;
}

.spanning-element {
  column-span: all;
  background-color: lightblue;
  padding: 10px;
  text-align: center;
}

Syntax Rules

  • The initial value is none — the element stays in the column flow.
  • all makes the element span every column in its multi-column parent.
  • Apply to direct or nested children inside a multi-column container.
  • Does not accept numeric values like 2 — only none and all.
  • Works well with headings, banners, and callout boxes in magazine-style layouts.

⚡ Quick Reference

QuestionAnswer
Initial valuenone
Applies toChildren of multi-column containers
InheritedNo
AnimatableNo
Common useFull-width headings and banners in column layouts

💎 Property Values

The column-span property accepts only two keyword values.

ValueDescription
noneThe element does not span across columns (default). It flows normally within the column layout.
allThe element spans across all columns, breaking out to the full width of the container.

👀 Live Preview

A light-blue banner with column-span: all sits above three columns of flowing text.

This heading spans across all columns

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur pretium, neque id placerat hendrerit, nulla nunc sollicitudin metus.

Proin id consequat nunc. Integer tincidunt erat et massa commodo, a feugiat magna ullamcorper. Sed accumsan risus a dui tristique.

Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Integer in libero vel risus dignissim malesuada.

Examples Gallery

Try a spanning banner, article heading, mid-article callout, and bottom footer note.

📐 Spanning All Columns

Start with the reference example — a light-blue element that spans all three columns.

Example 1 — Full-Width Spanning Banner

Make a heading span across all columns in a three-column layout.

column-span-all.html
<style>
  .container {
    column-count: 3;
    column-gap: 20px;
  }
  .spanning-element {
    column-span: all;
    background-color: lightblue;
    padding: 10px;
    text-align: center;
  }
</style>

<div class="container">
  <div class="spanning-element">This heading spans across all columns</div>
  <p>...</p>
</div>
Try It Yourself

How It Works

column-span: all pulls the element out of the column flow so it stretches the full container width before text continues in columns below.

Example 2 — Article Title Spanning Columns

Use column-span: all on an h2 for a newspaper-style article heading.

column-span-heading.css
.article {
  column-count: 2;
  column-gap: 2rem;
}

.article h2 {
  column-span: all;
  margin: 0 0 1rem;
  border-bottom: 2px solid #334155;
  padding-bottom: 0.5rem;
}
Try It Yourself

How It Works

The heading spans both columns while body paragraphs flow normally in the two-column layout beneath it.

🛠 Layout Patterns

Place full-width callouts and footer notes inside multi-column articles.

Example 3 — Mid-Article Callout Box

Insert a highlighted callout that spans all columns between paragraphs.

column-span-callout.css
.callout {
  column-span: all;
  background: #fef3c7;
  border-left: 4px solid #f59e0b;
  padding: 1rem;
  margin: 1rem 0;
}
Try It Yourself

How It Works

The callout interrupts the column flow, spans the full width, then text resumes in columns below.

🧠 How column-span Works

1

Multi-column container

Parent uses column-count or column-width.

Prerequisite
2

You set column-span: all

Target a child element that should break out of the column flow.

CSS rule
3

Element spans full width

The element stretches across every column before content continues below.

Rendering
=

Magazine-style layout

Headings and callouts stand out while body text flows in columns.

Modern Browser Support

The column-span property is supported in most modern browsers, including Chrome, Firefox, Safari, Edge, and Opera.

Baseline · Modern browsers

Column spanning everywhere

All major browsers support column-span as part of the Multi-column Layout module.

97% Modern browser support
Google Chrome 50+ · Desktop & Mobile
Full support
Mozilla Firefox 52+ · Desktop & Mobile
Full support
Apple Safari 9+ · macOS & iOS
Full support
Microsoft Edge 12+ · All versions
Full support
Opera 37+ · Modern versions
Full support
column-span property 97% supported

Bottom line: Use column-span: all freely for full-width elements in multi-column layouts. Test in Safari if spanning nested elements.

Conclusion

The column-span property is a useful tool for creating unique and visually appealing layouts in a multi-column setting. By allowing specific elements to span across all columns, you can create standout sections that draw attention and break up the monotony of the column structure.

Experiment with this property to enhance the design and readability of your multi-column layouts.

💡 Best Practices

✅ Do

  • Use column-span: all for headings, banners, and callouts
  • Keep spanning elements short so they do not dominate the layout
  • Pair with clear visual styling (background, border) for spanning blocks
  • Use for magazine-style article titles and pull quotes
  • Test spanning behavior on mobile column counts

❌ Don’t

  • Expect to span exactly 2 of 3 columns — only none or all work
  • Overuse spanning elements — they lose impact if every block spans
  • Confuse column-span with HTML table colspan
  • Apply to the multi-column container itself — use it on children
  • Rely on column-span for complex layouts — use Grid for fine control

Key Takeaways

Knowledge Unlocked

Five things to remember about column-span

Use these points when breaking elements out of column flow.

5
Core concepts
02

Default none

Normal flow.

Default
🖌 03

Two values

none and all.

Values
📐 04

On children

Inside column box.

Tip
🛸 05

Headings

Magazine layout.

Use case

❓ Frequently Asked Questions

column-span controls whether an element spans across all columns in a multi-column layout. Use all to break an element out of the column flow so it stretches the full container width.
The initial value is none, which means the element stays within the normal column flow and does not span across columns.
column-span accepts only two values: none (default) and all (span every column in the container).
column-span applies to CSS multi-column layouts on block elements. colspan is an HTML table attribute for table cells spanning columns in a table.
Use column-span all for headings, banners, images, or callout boxes that should break out of the column structure and span the full width of a multi-column container.

Practice in the Live Editor

Open the HTML editor, set column-span: all on a heading inside a multi-column container, and preview the full-width breakout.

HTML Editor →

About the author

Mari Selvan M P
Mari Selvan M P 🔗

Developer, cloud engineer, and technical writer

  • Experience 12 years building web and cloud systems
  • Focus Full Stack Development, AWS, and Developer Education

I write practical tutorials so students and working developers can learn by doing—from databases and APIs to deployment on AWS.

5 people found this page helpful