Page Breaks
James Paden avatar
Written by James Paden
Updated over a week ago

One of DocRaptor’s strengths is our greater intelligence behind automatic page and column breaks, especially when long tables or large graphics are used. If necessary though, you can use CSS to insert or avoid page breaks. The renderer will try to follow your settings when possible. Occasionally, the content is too large to avoid a break, or multiple break-avoiding sections are repeated next to each other.

The CSS properties break-before , break-after , break-inside let you provide suggestions to the renderer, for example:

.chapter { break-before: break; }
.heading { break-after: avoid; }
section { break-inside: avoid; }

The break-before and break-after properties accept the following values:

  • auto is the default value. The renderer will insert new pages as necessary.

  • page forces a page break. This is often used at the beginning of a chapter or section.

  • left or right forces a page break and, if necessary, creates a blank page so that the content starts in the desired spread location. This is normally used with printed books, where chapters often start on the right page.

  • avoid asks the renderer not to create a new page, if possible.

  • column creates a new column (not necessarily a new page).

The break-inside property only accepts avoid and auto as values.

These properties can be applied to block-level elements, table rows, and table row groups.

Widows and Orphans

Widows and orphan properties allow you to control the amount of text that is left behind or ahead when a page breaks. Leaving a single line at the end of the page is sometimes undesirable.

Text before a page break is called an orphan and after a page break, a widow. If this terminology is hard to remember, Wikipedia suggests the mnemonic, ”An orphan is alone from the beginning [of a paragraph]; a widow is alone at the end [of a paragraph].”

The default for each property is one line, but this can be adjusted with CSS:

p {
orphans: 3;
widows: 3;
}
Did this answer your question?