break-before
Quick Summary for break-before
The break-before CSS property sets how page, column, or region breaks should behave before a generated box. If there is no generated box, the property is ignored.
Code Usage for break-before
/* Generic break values */ break-before: auto; break-before: avoid; break-before: always; break-before: all;  /* Page break values */ break-before: avoid-page; break-before: page; break-before: left; break-before: right; break-before: recto; break-before: verso;  /* Column break values */ break-before: avoid-column; break-before: column;  /* Region break values */ break-before: avoid-region; break-before: region;  /* Global values */ break-before: inherit; break-before: initial; break-before: revert; break-before: unset; 
More Details for break-before

break-before

The break-before CSS property sets how page, column, or region breaks should behave before a generated box. If there is no generated box, the property is ignored.

/* Generic break values */ break-before: auto; break-before: avoid; break-before: always; break-before: all;  /* Page break values */ break-before: avoid-page; break-before: page; break-before: left; break-before: right; break-before: recto; break-before: verso;  /* Column break values */ break-before: avoid-column; break-before: column;  /* Region break values */ break-before: avoid-region; break-before: region;  /* Global values */ break-before: inherit; break-before: initial; break-before: revert; break-before: unset; 

Each possible break point (in other words, each element boundary) is affected by three properties: the break-after value of the previous element, the break-before value of the next element, and the break-inside value of the containing element.

To determine if a break must be done, the following rules are applied:

If any of the three concerned values is a forced break value (always, left, right, page, column, or region), it has precedence. If more than one of them are such a break, the one of the element that appears the latest in the flow is taken (i.e., the break-before value has precedence over the break-after value, which itself has precedence over the break-inside value). If any of the three concerned values is an avoid break value (avoid, avoid-page, avoid-region, or avoid-column), no such break will be applied at that point.

Once forced breaks have been applied, soft breaks may be added if needed, but not on element boundaries that resolve in a corresponding avoid value.

Syntax

The break-before property is specified as one of the keyword values from the list below.

Values

Generic break values auto

Allows, but does not force, any break (page, column, or region) to be inserted right before the principal box.

avoid

Avoids any break (page, column, or region) from being inserted right before the principal box.

always

Forces a page break right after the principal box. The type of this break is that of the immediately-containing fragmentation context. If we are inside a multicol container then it would force a column break, inside paged media (but not inside a multicol container) a page break.

all

Forces a page break right after the principal box. Breaking through all possible fragmentation contexts. So a break inside a multicol container, which was inside a page container would force a column and page break.

Page break values avoid-page

Avoids any page break right before the principal box.

page

Forces a page break right before the principal box.

left

Forces one or two page breaks right before the principal box, whichever will make the next page into a left page.

right

Forces one or two page breaks right before the principal box, whichever will make the next page into a right page.

recto

Forces one or two page breaks right before the principal box, whichever will make the next page into a recto page. (A recto page is a right page in a left-to-right spread or a left page in a right-to-left spread.)

verso

Forces one or two page breaks right before the principal box, whichever will make the next page into a verso page. (A verso page is a left page in a left-to-right spread or a right page in a right-to-left spread.)

Column break values avoid-column

Avoids any column break right before the principal box.

column

Forces a column break right before the principal box.

Region break values avoid-region

Avoids any region break right before the principal box.

region

Forces a region break right before the principal box.

Page break aliases

For compatibility reasons, the legacy page-break-before property should be treated by browsers as an alias of break-before. This ensures that sites using page-break-before continue to work as designed. A subset of values should be aliased as follows:

page-break-before break-before
auto auto
left left
right right
avoid avoid
always page

Note: The always value of page-break-* was implemented by browsers as a page break, and not as a column break. Therefore the aliasing is to page, rather than the always value in the Level 4 spec.

Formal definition

Initial valueauto
Applies toblock-level elements
Inheritedno
Computed valueas specified
Animation typediscrete

Formal syntax

auto | avoid | always | all | avoid-page | page | left | right | recto | verso | avoid-column | column | avoid-region | region

Examples

Breaking into neat columns

In the following example we have a container that contains an <h1> spanning all columns (achieved using column-span: all) and a series of <h2>s and paragraphs laid out in multiple columns using column-width: 200px.

By default, the subheadings and paragraphs were laid out rather messily because the headings were not in a uniform place. However, we used break-before: column on the <h2> elements to force a column break before each one, meaning that you end up with an <h2> neatly at the top of each column.

HTML
<article>   <h1>Main heading</h1>    <h2>Subheading</h2>    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla vitae fringilla mauris. Quisque commodo eget nisi sed pretium. Mauris luctus nec lacus in ultricies. Mauris vitae hendrerit arcu, ac scelerisque lacus. Aliquam lobortis in lacus sit amet posuere. Fusce iaculis urna id neque dapibus, eu lacinia lectus dictum.</p>    <h2>Subheading</h2>    <p>Praesent condimentum dui dui, sit amet rutrum diam tincidunt eu. Cras suscipit porta leo sit amet rutrum. Sed vehicula ornare tincidunt. Curabitur a ipsum ac diam mattis volutpat ac ut elit. Nullam luctus justo non vestibulum gravida. Morbi metus libero, pharetra non porttitor a, molestie nec nisi.</p>    <h2>Subheading</h2>    <p>Vivamus eleifend metus vitae neque placerat, eget interdum elit mattis. Donec eu vulputate nibh. Ut turpis leo, malesuada quis nisl nec, volutpat egestas tellus.    <h2>Subheading</h2>    <p>In finibus viverra enim vel suscipit. Quisque consequat velit eu orci malesuada, ut interdum tortor molestie. Proin sed pellentesque augue. Nam risus justo, faucibus non porta a, congue vel massa. Cras luctus lacus nisl, sed tincidunt velit pharetra ac. Duis suscipit faucibus dui sed ultricies.</p> </article> 
CSS
html {   font-family: helvetica, arial, sans-serif; }  h1 {   font-size: 3rem;   letter-spacing: 2px;   column-span: all; }  h2 {   font-size: 1.2rem;   color: red;   letter-spacing: 1px;   break-before: column; }  p {   line-height: 1.5; }  article {   column-width: 200px;   gap: 20px; } 

Result

Specifications

Specification
CSS Fragmentation Module Level 3 # break-between
CSS Regions Module Level 1 # region-flow-break
CSS Multi-column Layout Module Level 2 # break-before-break-after-break-inside

See also

Multiple-column Layout Breaking Boxes With CSS Fragmentation

Last modified: Feb 2, 2022, by MDN contributors

Select your preferred language English (US)Français日本語中文 (简体) Change language

No Items Found.

Add Comment
Type in a Nick Name here
 
Other Categories in CSS
css
Search CSS
Search CSS by entering your search text above.
Welcome

This is my test area for webdev. I keep a collection of code here, mostly for my reference. Also if i find a good link, i usually add it here and then forget about it. more...

Subscribe to weekly updates about things i have added to the site or thought interesting during the last week.

You could also follow me on twitter or not... does anyone even use twitter anymore?

If you found something useful or like my work, you can buy me a coffee here. Mmm Coffee. ☕

❤️👩‍💻🎮

🪦 2000 - 16 Oct 2022 - Boots
Random Quote
Old programmers never die; they just lose some of their functions.
Random CSS Property

<resolution>

The <resolution> CSS data type, used for describing resolutions in media queries, denotes the pixel density of an output device, i.e., its resolution.
resolution#x css reference