Home CSS Properties break-inside CSS break-inside Property Definition
Definition and Usage The break-inside property sets how a page , column , or region break should behave inside an element’s box. If the element does not generate a box, the property is ignored.
Unlike break-before and break-after , it has no forced-break keywords. You only allow or avoid breaks within the box. It applies to block-level elements, is not inherited, and starts at auto.
Standard-track. Not experimental. Prefer break-inside over the older page-break-inside alias. Region values still have limited support.
Syntax
CSS Syntax break-inside: auto | avoid | avoid-page | avoid-column | initial | inherit ;
There is also avoid-region for CSS Regions. Start with auto and avoid.
Values
Property Values Value Description Try it autoDefault. Allows a break inside the box when needed Try itavoidAvoids any break inside the box (page, column, or region) Try itavoid-columnAvoids a column break inside the box Try itavoid-pageAvoids a page break inside the box (print / paged media) Try itinitialResets to auto Try itinheritTakes the parent’s break-inside Try it
Approach
How to Use break-inside Put avoid on the box you want to keep whole in print or multi-column layout.
Find the block that must stay together (figure, card, table, or list item). For columns, wrap content in a multi-column container (column-count or columns ). Set break-inside: avoid (or avoid-column / avoid-page) on that block. Test in Print Preview for page media, and in a multi-column layout for columns. Piece Required? Role Block-level element Yes The property applies to block boxes Paged or multi-column context Yes (to see it) Without fragmentation, there is nothing to avoid break-inside keywordYes avoid, avoid-column, avoid-page, or autoReasonable box size Recommended A box taller than the page or column may still split
Try it
Live Preview Two cards in a multi-column article. Toggle break-inside. With avoid, each card tries to stay in one column.
Code
CSS Examples Each snippet focuses on break-inside. Use Try It Yourself for a live editor.
1. Avoid 2. Avoid column 3. Avoid page Example 1 — Keep a Figure Together Stop a figure from splitting across columns.
<style>
article {
column-count: 3;
}
figure {
break-inside: avoid;
}
</style>
<article>
<p>Text before.</p>
<figure>
<p>Image</p>
<figcaption>Caption stays with the image.</figcaption>
</figure>
<p>Text after.</p>
</article> Text before.
Image + caption Caption stays with the image.
Text after.
How It Works Make columns. column-count: 3 creates the fragmentation context.Protect the figure. break-inside: avoid asks the browser not to split that box.Image + caption stay paired. Both move to the next column together when needed.Soft request. Forced breaks nearby can still win; oversized boxes may still split.Example 2 — Avoid Column Breaks Only Block column splits inside a card, without changing page-break rules.
<style>
article {
column-count: 3;
}
.card {
break-inside: avoid-column;
}
</style>
<article>
<div class="card">
<h2>Card</h2>
<p>Keep this block in one column.</p>
</div>
</article> Card Keep this block in one column.
Surrounding text can still flow into other columns.
How It Works Target columns. avoid-column only cares about column breaks.Card stays whole. The heading and paragraph try to remain in the same column.Pages stay flexible. Page breaks can still happen inside the box unless you also use avoid or avoid-page.Pick the right scope. Use avoid when you want both page and column protection.Example 3 — Avoid Page Breaks Keep a section from splitting across printed pages.
<style>
.section {
break-inside: avoid-page;
}
</style>
<div class="section">
<h2>Heading</h2>
<p>Body that should stay with the heading when printed.</p>
</div> Heading Body that should stay with the heading when printed. Open Print Preview to check.
How It Works Mark the section. The wrapper gets break-inside: avoid-page.Print-focused. The browser avoids a page break inside that box when possible.Check Print Preview. Screen layout will not show the page split.Size matters. If the section is taller than one page, a break may still occur. Edge Cases & Pitfalls If a block still splits, one of these is usually why.
soft avoid is not a hard lockIt is a request. Forced breaks from neighbors, or a box taller than the fragment, can still cause a split.
context Needs fragmentation Without print media or a multi-column container, there is no inside break to avoid.
legacy page-break-inside is the old aliasBrowsers map page-break-inside auto and avoid to break-inside. Prefer the modern name.
priority Forced breaks beat avoid At a boundary, forced break-before / break-after values win over break-inside: avoid.
block Needs a generated block box The property applies to block-level elements. If no box is generated, break-inside is ignored.
Compatibility
Browser Support break-inside is a browser fragmentation property for pages and columns. Node.js, Deno, and Bun do not apply it.
✓ Baseline · Values vary
break-inside Property: Chrome 50+, Firefox 65+, Safari 10+, Edge 12+, IE 10+. avoid is widely available. Region values remain limited.
Google Chrome 50+
Full
Mozilla Firefox 65+
Full
Apple Safari 10+
Full
Microsoft Edge 12+
Full
Opera 37+
Full
Samsung Internet Supported
Full
Internet Explorer 10+
Partial break-inside Widely supported
Bottom line: Safe for keeping blocks together in modern browsers. Prefer break-inside: avoid over legacy page-break-inside: avoid.
Remember
Key Takeaways Role: allow or avoid a break inside a box in paged or multi-column layout.
Common values: auto, avoid, avoid-column, avoid-page.
Initial value: auto. Not inherited. No forced-break keywords.
Modern name: use break-inside; keep page-break-inside only for old code.
One line: break-inside keeps a box whole — or lets the browser split it — across pages and columns.
Frequently Asked Questions What does the CSS break-inside property do? It controls whether a page, column, or region break is allowed inside an element's box. Use avoid to keep cards, figures, and blocks from splitting.
What is the default value of break-inside? The initial value is auto. The browser may break inside the box when layout needs it.
What is the difference between avoid and avoid-column? avoid tries to prevent any break inside the box. avoid-column only avoids column breaks. avoid-page only avoids page breaks.
Is break-inside the same as page-break-inside? page-break-inside is the older print-only property. Modern CSS prefers break-inside. Browsers treat auto and avoid as aliases.
Why might avoid still split? avoid is a soft request. A forced break nearby, or a box taller than the page or column, can still force a split.
Which browsers support break-inside? The property is Baseline for common values: Chrome 50+, Firefox 65+, Safari 10+, Edge 12+. It is a browser layout property, not a Node.js feature.
About the author Developer, cloud engineer, and technical writer
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
Helpful Share Copy link Suggestion