CSS break-before Property

Beginner
⏱️ 6 min read
📚 Updated: Jun 2026
🎯 4 Examples
Print & Columns

What You’ll Learn

The break-before property controls page, column, and region breaks before an element. It is especially useful for print documents and multi-column layouts where each new section should start fresh on a new page or column.

01

Break Before

Split before element.

02

Syntax

auto, page, column.

03

Print Chapters

New page per section.

04

Columns

Start in new column.

05

avoid

Prevent awkward splits.

06

vs break-after

Before vs after split.

Definition and Usage

The break-before CSS property controls the page, column, or region break behavior before a specified element. This property is particularly useful in paged media (such as printed documents) or multi-column layouts, allowing you to dictate how content flows across pages or columns.

For example, you can force every chapter heading to start on a new printed page, or make each sidebar section begin at the top of a new column in a magazine-style layout.

💡
Beginner Tip

Think of break-before as “start this element on a fresh page or column.” It affects the space before the element, not after it.

📝 Syntax

The syntax for break-before is straightforward and accepts several keyword values:

syntax.css
selector {
  break-before: auto | always | avoid | left | right | page | column | region;
}

Basic Example

break-before.css
@media print {
  h2 {
    break-before: page;
  }
}

Syntax Rules

  • The initial value is auto.
  • The property is not inherited — apply it to the element that should start the break.
  • page forces a new page before the element in paged media.
  • column forces a new column before the element in multi-column containers.
  • Use @media print when you only want breaks during printing.

⚡ Quick Reference

QuestionAnswer
Initial valueauto
Applies toBlock-level elements
InheritedNo
AnimatableNo
Common useChapter headings in print; section starts in columns

💎 Property Values

The break-before property accepts keyword values that control fragmentation before an element.

ValueExampleMeaning
autobreak-before: auto;Default. Neither force nor forbid a break before the element.
alwaysbreak-before: always;Always force a page break before the element.
avoidbreak-before: avoid;Avoid a page break before the element when possible.
leftbreak-before: left;Force a break so the element starts on a left page (paged media).
rightbreak-before: right;Force a break so the element starts on a right page (paged media).
pagebreak-before: page;Force a page break before the element.
columnbreak-before: column;Force a column break before the element in a multi-column layout.
regionbreak-before: region;Force a region break before the element.
auto page column avoid

break-before vs. break-after

These two properties sound similar but control breaks on opposite sides of an element:

  • break-before — Inserts a break before the element. The element itself starts on a new page or column. Ideal for chapter headings and section titles.
  • break-after — Inserts a break after the element. Content following the element starts fresh. Ideal for ending a section and pushing the next block down.

For chapter headings, break-before: page on h2 is usually the clearest choice — the heading and its content begin together on a new page.

👀 Live Preview

The purple block uses break-before: column, so it starts at the top of a new column in this two-column container.

First column content flows here before the forced break.

Section 2 — starts in column 2

Content after the section heading continues in the second column.

Examples Gallery

Try print chapter breaks, column section starts, avoid rules, and a complete print stylesheet.

Example 1 — Page Break Before Chapter Headings

When the document is printed, a page break is forced before each <h2>, so Chapter 2 starts on a new page.

chapter-break.html
<style>
  @media print {
    h2 {
      break-before: page;
    }
  }
</style>

<h1>Chapter 1</h1>
<p>Content of the first chapter...</p>
<h2>Chapter 2</h2>
<p>Content of the second chapter...</p>
Try It Yourself

How It Works

The first chapter flows normally. Before the second h2, the browser starts a new printed page so Chapter 2 begins at the top of a fresh sheet.

📚 Multi-Column Sections

Use break-before: column so each section heading starts at the top of a new column.

Example 2 — Column Break Before a Section

Start a new section at the top of the next column in a magazine-style layout.

column-break-before.html
<style>
  .columns {
    column-count: 2;
    column-gap: 1.5rem;
  }

  .section-title {
    break-before: column;
  }
</style>

<div class="columns">
  <p>Intro text in column one...</p>
  <h3 class="section-title">Section B</h3>
  <p>Section B starts in the next column.</p>
</div>
Try It Yourself

How It Works

The section heading moves to the top of the next column because the break happens before the heading element, not after the previous paragraph.

Example 3 — Avoid a Break Before a Figure

Prevent a page or column break from appearing immediately before an image and its caption.

avoid-break-before.html
<style>
  figure {
    break-before: avoid;
  }
</style>

<p>Paragraph above the figure...</p>
<figure>
  <img src="chart.png" alt="Chart">
  <figcaption>Figure 1: Sales chart</figcaption>
</figure>
Try It Yourself

How It Works

break-before: avoid tells the browser not to insert a break right before the figure if it can keep the preceding paragraph and figure together.

Example 4 — Print Report with Section Page Breaks

Start each major report section on a new page when printing, while keeping the screen layout unchanged.

print-report.css
@media print {
  .report-section h2 {
    break-before: page;
  }

  .report-section:first-of-type h2 {
    break-before: auto;
  }
}
Try It Yourself

How It Works

Every section heading except the first gets a page break before it. Resetting the first section avoids an unnecessary blank page at the start of the document.

🧠 How break-before Works

1

Content flows toward the element

Previous paragraphs, images, or columns fill the layout until the target element is reached.

Normal flow
2

You set break-before on the element

Choose page, column, avoid, or another keyword to control the break before it.

CSS rule
3

The browser inserts or suppresses the break

The element starts on a new page or column, or the break is avoided to keep content grouped.

Fragmentation
=

Organized sections

Chapters and sections begin exactly where you intend in print and column layouts.

Universal Browser Support

The break-before property is supported in most modern browsers, including Chrome, Firefox, Safari, Edge, and Opera. Test print and column behavior in the browsers your audience uses.

Baseline · Modern browsers

Reliable break control in current browsers

Chrome, Firefox, Safari, Edge, and Opera support break-before for print and fragmentation contexts.

96% Modern browser support
Google Chrome 51+ · Desktop & Mobile
Full support
Mozilla Firefox 65+ · Desktop & Mobile
Full support
Apple Safari 10+ · macOS & iOS
Full support
Microsoft Edge 79+ · Chromium
Full support
Opera 38+ · Modern versions
Full support

Testing tip

Use print preview for break-before: page. Use a column-count container on screen to test break-before: column.

break-before property 96% supported

Bottom line: Use break-before confidently for print chapters and column sections. Always verify in print preview.

Conclusion

The break-before property is a useful tool for web developers working with paged media or multi-column layouts. It allows fine-grained control over content flow, ensuring that elements appear in the desired locations across pages or columns.

By understanding and using this property, you can create more professional and well-organized documents and layouts. Experiment with page, column, and avoid to find the right break behavior for your project.

💡 Best Practices

✅ Do

  • Use break-before: page on chapter and section headings in print CSS
  • Scope print breaks inside @media print
  • Reset break-before on the first section to avoid a blank opening page
  • Use break-before: column for magazine-style section starts
  • Pair with break-inside: avoid on figures and tables

❌ Don’t

  • Confuse break-before with break-after — they control opposite sides
  • Expect visible page breaks on normal scrolling screen layouts
  • Force a page break before every small heading — it wastes paper
  • Use legacy page-break-before in new projects
  • Skip print preview when testing page-break behavior

Key Takeaways

Knowledge Unlocked

Five things to remember about break-before

Use these points when placing breaks before elements.

5
Core concepts
02

auto Default

Natural flow.

Default
🖨 03

page / column

Print and columns.

Keywords
📚 04

Chapter Starts

h2 on new page.

Pattern
05

vs break-after

Before, not after.

Compare

❓ Frequently Asked Questions

break-before controls whether a page, column, or region break happens before an element. It lets you force content to start on a new page or column right before a specific element.
The initial value is auto. With auto, no break is forced before the element and content flows naturally according to the browser's layout rules.
break-before inserts a break before the element, so the element starts on a new page or column. break-after inserts a break after the element, so the next content starts fresh.
Use it when each new chapter, section, or column block should begin on a fresh page or column — for example, starting every h2 chapter on a new printed page.
break-before is the modern standard property that replaces the older page-break-before. Prefer break-before in new projects; legacy print CSS may still use page-break-before.

Practice in the Live Editor

Open the HTML editor, apply break-before, and test page and column breaks instantly.

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