diff --git a/css-break/Overview.bs b/css-break/Overview.bs index 3cff3f3334b..eb17a4ec442 100644 --- a/css-break/Overview.bs +++ b/css-break/Overview.bs @@ -16,7 +16,6 @@ Abstract: This module describes the fragmentation model that partitions a flow Abstract: It builds on the Page model module and introduces and defines the fragmentation model. Abstract: It adds functionality for pagination, breaking variable fragment size and orientation, widows and orphans. Ignored Terms: background positioning area, region chain, … message topic …, reference box -Use Autolinks: yes At Risk: the ''region'' and ''break-after/avoid-region'' values of 'break-*' @@ -40,8 +39,8 @@ Introduction and multi-column layout [[CSS3COL]] create a similarly fragmented environment. The generic term for breaking content across containers is - fragmentation. - This module explains how content breaks across fragmentation containers (fragmentainers) + fragmentation. + This module explains how content breaks across fragmentation containers (fragmentainers) such as pages and columns and how such breaks can be controlled by the author.

@@ -59,7 +58,7 @@ Module Interactions

Values

- This specification follows the CSS property definition conventions from [[!CSS2]]. + This specification follows the CSS property definition conventions from [[!CSS21]]. Value types not defined in this specification are defined in CSS Values & Units [[!CSS-VALUES-3]]. Other CSS modules may expand the definitions of these value types. @@ -75,43 +74,43 @@ Fragmentation Model and Terminology
fragmentation container (fragmentainer)
A box—such as a page box, column box, or region—that contains - a portion (or all) of a fragmented flow. + a portion (or all) of a fragmented flow. Fragmentainers can be pre-defined, or generated as needed. When breakable content would overflow a fragmentainer in the block dimension, - it breaks into the next container in its fragmentation context + it breaks into the next container in its fragmentation context instead.
fragmentation context
- An ordered series of fragmentainers, + An ordered series of fragmentainers, such as created by a multi-column element, a chain of CSS regions, or a paged media display. A given fragmentation context can only have one block flow direction - across all its fragmentainers. - (Descendants of the fragmentation root may have other block flow directions, - but fragmentation proceeds according to the block flow direction applied to the fragmentation root.) + across all its fragmentainers. + (Descendants of the fragmentation root may have other block flow directions, + but fragmentation proceeds according to the block flow direction applied to the fragmentation root.)
fragmented flow
- Content that is being laid out in a fragmentation context. - The fragmented flow consists of the content of a (possibly anonymous) box + Content that is being laid out in a fragmentation context. + The fragmented flow consists of the content of a (possibly anonymous) box called the fragmentation root.
fragmentation direction
- The block flow direction of the fragmentation context, + The block flow direction of the fragmentation context, i.e. the direction in which content is fragmented. (In this level of CSS, content only fragments in one dimension.)
fragmentation
- The process of splitting a content flow across the fragmentainers - that form a fragmentation context. + The process of splitting a content flow across the fragmentainers + that form a fragmentation context.
box fragment or fragment
- The portion of a box that belongs to exactly one fragmentainer. + The portion of a box that belongs to exactly one fragmentainer. A box in continuous flow always consists of only one fragment. A box in a fragmented flow consists of one or more fragments. Each fragment has its own share of the box’s border, padding, and margin, @@ -123,16 +122,16 @@ Fragmentation Model and Terminology (See 'box-decoration-break', which controls how these are affected by fragmentation.)
remaining fragmentainer extent
- The remaining block-axis space in the fragmentainer available to a given element, - i.e. between the end of preceding content in fragmentainer - and the edge of the fragmentainer. + The remaining block-axis space in the fragmentainer available to a given element, + i.e. between the end of preceding content in fragmentainer + and the edge of the fragmentainer.

Each fragmentation break (hereafter, break) - ends layout of the fragmented box in the current fragmentainer - and causes the remaining content to be laid out in the next fragmentainer, - in some cases causing a new fragmentainer to be generated + ends layout of the fragmented box in the current fragmentainer + and causes the remaining content to be laid out in the next fragmentainer, + in some cases causing a new fragmentainer to be generated to hold the deferred content.

@@ -178,24 +177,24 @@ Parallel Fragmentation Flows Content overflowing the content edge of a fixed-size box is considered parallel to the content after the fixed-size box and follows the normal fragmentation rules. - Although overflowing content doesn't affect the size of the fragmentation root box, - it does increase the length of the fragmented flow, - spilling into or generating additional fragmentainers as necessary. + Although overflowing content doesn't affect the size of the fragmentation root box, + it does increase the length of the fragmented flow, + spilling into or generating additional fragmentainers as necessary.

Nested Fragmentation Flows

- Breaking a fragmentainer F effectively splits the fragmentainer - into two fragmentainers (F1 and F2). + Breaking a fragmentainer F effectively splits the fragmentainer + into two fragmentainers (F1 and F2). The only difference is that, - with regards to the content of fragmentainer F, + with regards to the content of fragmentainer F, the type of break between the two pieces F1 and F2 is the type of break created - by the fragmentation context that split F, - not the type of break normally created by F’s own fragmentation context. + by the fragmentation context that split F, + not the type of break normally created by F’s own fragmentation context.

@@ -215,7 +214,7 @@ Nested Fragmentation Flows Controlling Breaks

- The following sections explain how breaks are controlled in a fragmented flow. + The following sections explain how breaks are controlled in a fragmented flow. A page/column/region break opportunity between two boxes is under the influence of the containing block's 'break-inside' property, @@ -268,7 +267,7 @@ Breaks Between Boxes: the 'break-before' and 'break-after' properties

Values for 'break-before' and 'break-after' are defined in the sub-sections below. - User Agents must apply these properties to boxes in the normal flow of the fragmentation root. + User Agents must apply these properties to boxes in the normal flow of the fragmentation root. User agents should also apply these properties to floated boxes whose containing block is in the normal flow of the root fragmented element. User agents may also apply these properties to other boxes. @@ -320,13 +319,13 @@ Page Break Values

Force one or two page breaks before/after the principal box so that the next page is formatted as either a left page or a right page, - whichever is second (according to the page progression) in a page spread. + whichever is second (according to the page progression) in a page spread.
verso
Force one or two page breaks before/after the principal box so that the next page is formatted as either a left page or a right page, - whichever is first (according to the page progression) in a page spread. + whichever is first (according to the page progression) in a page spread.
@@ -420,10 +419,10 @@ Breaks Between Lines: 'orphans', 'widows'

The 'orphans' property specifies the minimum number of line boxes in a block container - that must be left in a fragment before a fragmentation break. + that must be left in a fragment before a fragmentation break. The 'widows' property specifies the minimum number of line boxes of a block container - that must be left in a fragment after a break. + that must be left in a fragment after a break. Examples of how they are used to control fragmentation breaks are given below.

@@ -474,7 +473,7 @@ Rules for Breaking

To guarantee progress, fragmentainers are assumed to have a minimum - block size of 1px regardless of their used size. + block size of 1px regardless of their used size.

Possible Break Points

@@ -544,7 +543,7 @@ Possible Break Points

In addition to any content which is not generally fragmentable, - UAs may consider as monolithic any elements with + UAs may consider as monolithic any elements with 'overflow' set to ''overflow/auto'' or ''overflow/scroll'' and any elements with ''overflow: hidden'' and a non-''height/auto'' logical height @@ -580,16 +579,16 @@ Types of Breaks

A break between two column boxes. Note that if the column boxes are on different pages, then the break is - also a page break. + also a page break. Similarly, if the column boxes are in different regions, - then the break is also a region break. + then the break is also a region break. [[!CSS3COL]]
region break
A break between two regions. Note that if the region boxes are on different pages, then the break is - also a page break. + also a page break. [[!CSS3-REGIONS]]
@@ -604,15 +603,15 @@ Forced Breaks

A forced break is one explicitly indicated by the style sheet author. - A forced break occurs at a class A break point if, + A forced break occurs at a class A break point if, among the 'break-after' properties specified on or propagated to the earlier sibling box and the 'break-before' properties specified on or propagated to the later sibling box - there is at least one with a forced break value. - (Thus a forced break value effectively overrides any avoid break value + there is at least one with a forced break value. + (Thus a forced break value effectively overrides any avoid break value that also applies at that break point.)

- When multiple forced break values apply to a single break point, + When multiple forced break values apply to a single break point, they combine such that all types of break are honored. When ''left'', ''right'', ''recto'', and/or ''verso'' are combined, the value specified on the latest element in the flow wins. @@ -637,7 +636,7 @@ Unforced Breaks While breaking controls can force breaks, they can also discourage them. An unforced break is one that is inserted automatically by the UA - in order to prevent content from overflowing the fragmentainer. + in order to prevent content from overflowing the fragmentainer. The following rules control whether unforced breaking at a possible break point is allowed:

@@ -673,7 +672,7 @@ Unforced Breaks

If the above doesn't provide enough break points to keep content from - overflowing the fragmentainer, + overflowing the fragmentainer, then rule 3 is dropped to provide more break points.

@@ -699,7 +698,7 @@ Unforced Breaks and not all the content fits, the UA may break anywhere in order to avoid losing content off the edge of the fragmentainer. - In such cases, the UA may also fragment the contents of monolithic elements + In such cases, the UA may also fragment the contents of monolithic elements by slicing the element's graphical representation. However, the UA must not break at the top of the page, i.e. it must place at least some content on each fragmentainer, @@ -795,16 +794,16 @@ Breaking into Varying-size Fragmentainers across fragmentainers of this size. Progress is measured in percentages (not absolute lengths) of used/remaining fragmentainer extent and in amount of used/remaining content. - However, when laying out monolithic elements, - the UA may instead maintain a consistent inline size and resolved block size + However, when laying out monolithic elements, + the UA may instead maintain a consistent inline size and resolved block size across fragmentainers.
  • Fragments of boxes that began on a previous fragmentainer must obey placement rules with the additional constraint that fragments must - not be positioned above the block-start edge of the fragmentainer. + not be positioned above the block-start edge of the fragmentainer. If this results in a box's continuation fragment - shifting away from the block-start edge of the fragmentainer, then + shifting away from the block-start edge of the fragmentainer, then ''box-decoration-break: clone'', if specified, wraps the fragment with the box's margin in addition to its padding and border.
    @@ -829,13 +828,13 @@ Breaking into Varying-size Fragmentainers
    • Boxes (including tables) fullfilling layout constraints at their - stretch-fit or percentage-based size - may change inline size across pages. + stretch-fit or percentage-based size + may change inline size across pages.
    • Boxes (including tables) fulfilling layout constraints at their - min-content, max-content, or absolute-length size - will maintain their inline size across pages. + min-content, max-content, or absolute-length size + will maintain their inline size across pages.
    • A block-level continuation fragment may be placed below the top of @@ -889,7 +888,7 @@ Adjoining Margins at Breaks

      When an unforced break occurs between block-level boxes, - any margins adjoining the break truncate to the remaining fragmentainer extent before the break, + any margins adjoining the break truncate to the remaining fragmentainer extent before the break, and are truncated to zero after the break. When a forced break occurs there, adjoining margins before the break are truncated, but margins after the break are preserved. @@ -901,16 +900,16 @@ Splitting Boxes

      When a box breaks, - its content box extends to fill any remaining fragmentainer extent + its content box extends to fill any remaining fragmentainer extent (leaving room for any margins/borders/padding applied by ''box-decoration-break: clone'') - before the content resumes on the next fragmentainer. - (A fragmentation break that pushes content to the next fragmentainer - effectively increases the block size of a box's contents.) + before the content resumes on the next fragmentainer. + (A fragmentation break that pushes content to the next fragmentainer + effectively increases the block size of a box's contents.)

      - The extra block size contributed by fragmenting the box - (i.e. the distance from the break point to the edge of the fragmentainer) - contributes progress towards any specified limits on the box's block size. + The extra block size contributed by fragmenting the box + (i.e. the distance from the break point to the edge of the fragmentainer) + contributes progress towards any specified limits on the box's block size.

      src="images/Remaining-Fragmentainer-Extent.svg" alt="Illustration: Filling remaining fragmentainer extent">

      - Illustration of filling the remaining fragmentainer extent. + Illustration of filling the remaining fragmentainer extent.

      @@ -939,7 +938,7 @@ Fragmented Borders and Backgrounds: the 'box-decoration-break' property
      • whether the box's margins, borders, padding, and other decorations wrap the broken edges of the box fragments -
      • how the background positioning area [[!CSS3BG]] +
      • how the background positioning area [[!CSS3BG]] (and mask positioning area [[!CSS-MASKING-1]], shape reference box [[!CSS-SHAPES-1]], etc.) is derived from or duplicated across the box fragments @@ -1015,7 +1014,7 @@ Joining Boxes for ''slice''
        First, fragments on the same line are connected in visual order. Then, fragments on subsequent lines are ordered - according to the element's inline base direction + according to the element's inline base direction and aligned on the element's dominant baseline. For example, in a left-to-right containing block ('direction' is ''ltr''), the first fragment is the leftmost fragment on the first line @@ -1028,19 +1027,19 @@ Joining Boxes for ''slice''
        For boxes broken across columns
        Fragments are connected as if the column boxes were glued together - in the block flow direction of the multi-column element. + in the block flow direction of the multi-column element.
        For boxes broken across pages
        Fragments are connected as if page content areas were glued together - in the block flow direction of the root element. + in the block flow direction of the root element.
        For boxes broken across regions
        Fragments are connected as if region content areas were glued together - in the block flow direction of the principal writing mode of the region chain. + in the block flow direction of the principal writing mode of the region chain.
        @@ -1092,8 +1091,8 @@ Transforms, Positioning, and Pagination will fragment across fragmentainers in the same fragmentation flow as the containing block.

        - UAs are not required to correctly position boxes that span a fragmentation break - and whose block-start edge position depends on where the box's content fragments. + UAs are not required to correctly position boxes that span a fragmentation break + and whose block-start edge position depends on where the box's content fragments.

        UAs with memory constraints that prevent them from manipulating an entire document in memory