The break-before property sets how a page, column, or region break should behave before an element’s box. If the element does not generate a box, the property is ignored.
It applies to block-level elements and is not inherited. The initial value is auto. Breaks are decided together with break-after on the previous element and break-inside on the container. Forced values win over avoid values, and a later forced break-before wins over an earlier forced break-after.
Standard-track.
Not experimental. Prefer break-before over the older page-break-before alias. Support for some values (especially column and region) still varies by browser.
Bottom line: Safe for print page breaks in modern browsers. Treat column as Chromium-first until Firefox and Safari catch up. Prefer break-before over legacy page-break-before.
Remember
Key Takeaways
Role: control a break before a box in paged or multi-column layout.
Common values:auto, page, column, avoid.
Initial value:auto. Not inherited. Block-level elements only.
Modern name: use break-before; keep page-break-before only for old code.
One line:break-before decides what happens right before this box — stay with previous content, start a new page, or start a new column.
Frequently Asked Questions
It controls whether a page, column, or region break happens before an element's box. Use it so a heading or section starts on a new printed page or column.
The initial value is auto. The browser may break before the element when needed, but nothing is forced.
break-before places the break before the element, so that element starts the new page or column. break-after places the break after the element, so the next content starts fresh.
page-break-before is the older print-only property. Modern CSS prefers break-before. Browsers treat many page-break-before values as aliases of break-before.
page breaks show when printing or in print preview. column breaks need a multi-column container, and column support is strongest in Chromium-based browsers.
The property is Baseline for common page values: Chrome 50+, Firefox 65+, Safari 10+, Edge 12+. The column value is newer and not supported in Firefox or Safari yet. It is a browser layout property, not a Node.js feature.