CSS page-break-after Property

Beginner
5 min read
Updated: Oct 2026
3 examples
Live preview

Definition and Usage

The page-break-after property adjusts page breaks after the current element in print and other paged media. It applies to block-level elements that generate a box.

It is not inherited. The initial value is auto. Pair it with page-break-before and page-break-inside for older print stylesheets.

Deprecated Prefer break-after

page-break-after is a legacy alias. Use break-after in new CSS. Note: always maps to break-after: page.

CSS Syntax

syntax.css
page-break-after: auto | always | avoid | left | right | initial | inherit;

Some engines also recognize recto and verso. Start with auto, always, and avoid.

Property Values

ValueDescriptionTry it
autoDefault. Neither forces nor forbids a breakTry it
alwaysAlways force a page break after the elementTry it
avoidAvoid a page break right after the elementTry it
left / rightForce a break so the next page is a left or right pageTry it
initialResets to autoTry it
inheritTakes the parent’s page-break-afterTry it

How to Use page-break-after

Use it only for print styles you maintain, or migrate the rule to break-after.

  1. Pick the block that should end a printed page (often a heading or section end).
  2. Set page-break-after: always to force the next content onto a new page.
  3. Check the result in Print Preview (Ctrl+P / Cmd+P).
  4. For new CSS, rewrite as break-after: page.
PieceRequired?Role
Block-level elementYesMust generate a box
Paged mediaYes (to see it)Print Preview or printed output
KeywordYesalways, avoid, auto, and others
Modern replacementRecommendedbreak-after: page instead of always

Live Preview

Screen layout cannot show real print pages. This demo simulates a forced break after the marked block when you choose always, left, or right.

Use Print Preview on a real page to confirm. always aliases to break-after: page.

Print simulation
Content before
Marked block (page-break-after)
Content after

page-break-after: always

CSS Examples

Each snippet focuses on page-break-after. Confirm with Print Preview. Use Try It Yourself for a live editor.

Example 1 — Force a Page Break

Start the next section on a new printed page after each chapter heading.

CSS
<style>
  h1 {
    page-break-after: always;
  }
</style>

<h1>Chapter 1</h1>
<p>Ends this printed page.</p>
<h1>Chapter 2</h1>
Try It Yourself

How It Works

  1. Mark the heading. Each h1 gets page-break-after: always.
  2. Force the break. Content after that heading starts on a new printed page.
  3. Alias map. Browsers treat this like break-after: page.
  4. Verify in print. Screen layout usually will not show the split.

Example 2 — Avoid a Break

Ask the browser not to put a page break right after a heading.

CSS
<style>
  h2 {
    page-break-after: avoid;
  }
</style>

<h2>Heading</h2>
<p>Keep this with the heading when possible.</p>
Try It Yourself

How It Works

  1. Mark the box. The heading gets avoid.
  2. Soft request. The browser tries not to break immediately after it.
  3. Forced values win. A nearby always can still create a break.
  4. Modern twin. Prefer break-after: avoid in new CSS.

Example 3 — Default Auto

Leave break decisions to the print layout engine.

CSS
<style>
  p {
    page-break-after: auto;
  }
</style>

<p>Break only if the page needs one.</p>
Try It Yourself

How It Works

  1. Use the default. auto neither forces nor forbids a break.
  2. Layout decides. The printer may still break after long content.
  3. Reset tool. Useful after clearing a previous always rule.
  4. Same as initial. initial also resolves to auto.

Edge Cases & Pitfalls

If nothing seems to break, one of these is usually why.

print

Page breaks need print media

Check Print Preview. Normal screen layout usually ignores the visual page split.

legacy

always is not modern always

As an alias, page-break-after: always maps to break-after: page, not the broader Level 4 always keyword.

block

Needs a generated block box

The property applies to block-level elements. If no box is generated, it is ignored.

avoid

avoid is not a hard lock

Browsers try to honor it, but forced breaks and constrained page height can still win.

migrate

Prefer break-after for new work

Keep page-break-after only for older stylesheets. New print CSS should use break-after.

Browser Support

page-break-after is a browser print layout property. Node.js, Deno, and Bun do not apply it.

✓ Legacy · Widely available

page-break-after

Supported across modern browsers and older Internet Explorer for common print values. Prefer break-after for new CSS.

98% Common print values
Google Chrome Supported
Full
Mozilla Firefox Supported
Full
Apple Safari Supported
Full
Microsoft Edge Supported
Full
Opera Supported
Full
Samsung Internet Supported
Full
Internet Explorer 4+
Full
page-break-after Widely supported

Bottom line: Safe as a legacy print property. For new projects, use break-after and treat page-break-after as compatibility-only.

Key Takeaways

  • Role: control a print page break after a block box.
  • Common values: auto, always, avoid.
  • Initial value: auto. Not inherited. Deprecated alias of break-after.
  • Migration: replace always with break-after: page.

One line: page-break-after is the old print-after-break control — learn it, then use break-after.

Frequently Asked Questions

It controls whether a page break happens after an element when printing. Values can force a break, avoid one, or leave the choice to the browser.
The initial value is auto. The browser may insert a page break after the element when the print layout needs one.
Yes. It is a legacy alias kept for older pages. New CSS should use break-after instead. Browsers still support page-break-after for compatibility.
For compatibility, browsers treat page-break-after: always like break-after: page. That forces a page break after the element in print.
Page breaks apply in paged media such as Print Preview. Normal screen layout usually does not show a visible split.
It is widely available in all major browsers, including older Internet Explorer. It is a browser print layout property, not a Node.js feature.

Next: page-break-before

Learn the legacy property that controls breaks before an element.

page-break-before tutorial →

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.

8 people found this page helpful