CSS break-inside Property

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

What You’ll Learn

The break-inside property controls breaks within an element — keeping cards, figures, and list items intact across columns and printed pages instead of splitting them in the middle.

01

Inside Breaks

Control inner splits.

02

Syntax

auto, avoid, avoid-*.

03

avoid

Keep blocks together.

04

Columns

Intact column cards.

05

Print

No mid-table splits.

06

Break Trio

before, after, inside.

Definition and Usage

The break-inside CSS property controls the behavior of breaks within elements when printing or when dealing with multi-column layouts. It helps prevent unwanted breaks inside elements, ensuring that content maintains its intended structure and appearance across different devices and print formats.

While break-before and break-after control breaks at the edges of an element, break-inside focuses on whether the element itself can be split across columns or pages.

💡
Beginner Tip

Use break-inside: avoid on cards in a masonry or multi-column layout so a card never breaks in half across two columns.

📝 Syntax

Apply break-inside to any element to control how breaks inside it are handled:

syntax.css
selector {
  break-inside: auto | avoid | avoid-page | avoid-column | avoid-region;
}

Basic Example

break-inside.css
.item {
  break-inside: avoid;
}

Syntax Rules

  • The initial value is auto.
  • avoid is the most common value — it tries to keep the element unsplit.
  • avoid-column targets column fragmentation specifically.
  • avoid-page targets page fragmentation in print.
  • The property can be inherited when using the inherit keyword.

⚡ Quick Reference

QuestionAnswer
Initial valueauto
Applies toBlock-level and inline-block elements
InheritedNo (unless inherit is set)
AnimatableNo
Common useCards and figures in multi-column and print layouts

💎 Property Values

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

ValueExampleMeaning
autobreak-inside: auto;Allows, but does not force, any break inside the element.
avoidbreak-inside: avoid;Prevents any break inside the element when possible.
avoid-pagebreak-inside: avoid-page;Avoids a page break inside the element when printing.
avoid-columnbreak-inside: avoid-column;Avoids a column break inside the element in multi-column layouts.
inheritbreak-inside: inherit;Inherits the value from the parent element.
auto avoid avoid-page avoid-column

break-before, break-after, and break-inside

CSS provides three related break properties. Together they give full control over fragmentation:

  • break-before — Controls a break before the element starts.
  • break-after — Controls a break after the element ends.
  • break-inside — Controls whether the element itself can be split across columns or pages.

For a card grid in columns, break-inside: avoid on each card is usually the most important rule — it keeps each card readable as one unit.

👀 Live Preview

Each item uses break-inside: avoid so cards stay intact as they flow through this three-column container.

Item 1 — stays together
Item 2 — stays together
Item 3 — stays together
Item 4 — stays together
Item 5 — stays together
Item 6 — stays together

Examples Gallery

Try multi-column cards, print figures, tables, and a combined print stylesheet.

📚 Multi-Column Items

Prevent breaks inside column items so each block remains together — the same pattern from the reference example.

Example 1 — Items in a Three-Column Layout

Prevent breaks inside items so content within each card stays together across columns.

column-items.html
<style>
  .container {
    column-count: 3;
    column-gap: 20px;
  }

  .item {
    break-inside: avoid;
    margin-bottom: 20px;
    padding: 10px;
    background-color: #f0f0f0;
    border: 1px solid #ccc;
  }
</style>

<div class="container">
  <div class="item">Item 1</div>
  <div class="item">Item 2</div>
  <div class="item">Item 3</div>
</div>
Try It Yourself

How It Works

Each .item flows into the column layout as a single unbreakable unit. Without break-inside: avoid, tall items could split awkwardly across two columns.

Example 2 — Keep a Figure Intact When Printing

Use break-inside: avoid on figure elements so the image and caption stay on the same page.

figure-avoid.html
<style>
  @media print {
    figure {
      break-inside: avoid;
    }
  }
</style>

<figure>
  <img src="chart.png" alt="Chart">
  <figcaption>Figure 1: Quarterly results</figcaption>
</figure>
Try It Yourself

How It Works

When printing, the browser tries to keep the entire figure — image plus caption — on one page instead of splitting them across a page boundary.

Example 3 — Avoid Page Breaks Inside Tables

Prevent tables from splitting across printed pages when possible.

table-avoid-page.html
<style>
  @media print {
    table {
      break-inside: avoid-page;
    }
  }
</style>

<table>
  <tr><th>Team</th><th>Score</th></tr>
  <tr><td>Team A</td><td>92</td></tr>
</table>
Try It Yourself

How It Works

avoid-page specifically targets page fragmentation, making it a precise choice for print stylesheets when you want to keep small tables on one sheet.

📄 Combined Print Rules

Use break-inside alongside break-before and break-after for polished print documents.

Example 4 — Print Stylesheet for Cards and Sections

Combine break properties so sections start on new pages and cards never split internally.

print-break-inside.css
@media print {
  .card {
    break-inside: avoid;
  }

  figure,
  table {
    break-inside: avoid-page;
  }

  h2 {
    break-before: page;
  }
}
Try It Yourself

How It Works

Section headings start new pages, while cards, figures, and tables resist internal splits — a common pattern for printable reports and documentation.

🧠 How break-inside Works

1

Content enters a fragmented layout

Columns or printed pages divide the available space into separate fragments.

Fragmentation
2

You set break-inside on elements

Apply avoid, avoid-column, or avoid-page to control internal splitting.

CSS rule
3

The browser respects or allows splits

With avoid, the element moves to the next fragment whole instead of breaking in the middle.

Layout engine
=

Intact content blocks

Cards, figures, and tables stay readable as complete units.

Universal Browser Support

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

Baseline · Modern browsers

Reliable inside-break control

Chrome, Firefox, Safari, Edge, and Opera support break-inside for columns and print fragmentation.

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
break-inside property 96% supported

Bottom line: Use break-inside: avoid confidently on column cards and print blocks. Very tall elements may still break if they exceed page height.

Conclusion

The break-inside property is a useful tool for controlling content flow in multi-column layouts and printed documents. By preventing unwanted breaks within elements, you can maintain the integrity and readability of your content.

Experiment with avoid, avoid-column, and avoid-page to see how this property can enhance the presentation of your web projects.

💡 Best Practices

✅ Do

  • Use break-inside: avoid on cards in multi-column layouts
  • Apply avoid-page to figures and small tables in print CSS
  • Combine with break-before for full print control
  • Test in print preview and column containers
  • Keep card content reasonably short so avoid rules can succeed

❌ Don’t

  • Expect avoid to work on elements taller than one page
  • Confuse break-inside with break-before or break-after
  • Use legacy page-break-inside in new projects
  • Apply avoid to every element — only blocks that must stay whole
  • Skip testing when column count or print margins change

Key Takeaways

Knowledge Unlocked

Five things to remember about break-inside

Use these points when keeping content blocks intact.

5
Core concepts
02

auto Default

Browser may break.

Default
🛡 03

avoid

Keep block whole.

Keyword
📚 04

Column Cards

Multi-column layouts.

Use case
🖨 05

Print Blocks

Figures and tables.

Print

❓ Frequently Asked Questions

break-inside controls whether a page, column, or region break is allowed inside an element. It helps keep content together instead of being split across columns or printed pages.
The initial value is auto. With auto, the browser may break inside the element when needed based on normal layout and fragmentation rules.
avoid tries to prevent any break inside the element. avoid-column specifically prevents the element from being split across columns in a multi-column layout.
Use it on cards, figures, tables, and list items in multi-column layouts or print styles when you want each block to stay intact and not split in the middle.
break-inside is the modern standard property that replaces the older page-break-inside. Prefer break-inside in new projects; legacy print CSS may still use page-break-inside: avoid.

Practice in the Live Editor

Open the HTML editor, apply break-inside: avoid, and test multi-column layouts 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