CSS Fragmentation Module Level 3 CR Test Suite

Rules for Breaking (30 tests)

Test Refs Flags Info
+ 4 Rules for Breaking
empty-multicol-at-scrollport-edge
  • When flowing into fragmentainers, we require them to accept at least 1px of content in the block direction, in order to guarantee progress. But the block-size of the fragmentainer itself shouldn't be stretched to 1px, as that would lead to overflow contibution
line-pushed-by-float-000 =
line-pushed-by-float-001 =
multicol-zero-height-001 = multi-column element with zero height
+ 4.1 Possible Break Points
break-at-end-container-edge-000 =
  • We should break between the two lines (class B breakpoint), rather than between the last line and the container padding
break-at-end-container-edge-001 =
  • We should break between the last two lines (class B breakpoint), rather than inside the container padding
break-at-end-container-edge-002 =
  • We should break between the first two lines (class B breakpoint, also honoring widows), rather than inside the container padding
break-at-end-container-edge-003 =
  • The block with padding should be pushed to the second column, so that we won't have to break between the line and the padding edge
break-at-end-container-edge-004 =
  • The last line could fit in the third column, but will be pushed to the fourth, so that we won't have to break between the last line and the container padding
fieldset =
form-control =
  • Replaced content should be considered to be monolithic
contain-size-breaks-001 = Ahem size containment and fragmentation
  • size containment makes element monolithic
monolithic-with-overflow =
+ 4.2 Types of Breaks
+ 4.3 Forced Breaks
forced-break-at-fragmentainer-start-000 =
  • A forced break at the block-start of the fragmentainer is allowed, as long as it's otherwise at a valid class A break point
forced-break-at-fragmentainer-start-001 =
  • A forced break at the block-start of the fragmentainer is not allowed unless it's at a valid class A break point
contain-layout-breaks-001 = layout containment and forced breaks
  • layout containment allows forced breaks.
contain-layout-breaks-002 = layout containment and forced breaks
  • forced breaks within layout containment do not propagate to the parent.
+ 4.4 Unforced Breaks
break-between-avoid-000 =
  • Three blocks could fit in the first fragmentainer, but there's a break-before:avoid between the third and fourth block, so we should break between the second and third
break-between-avoid-001 =
  • Three blocks could fit in the first fragmentainer, but there's a break-after:avoid between the third and fourth block, so we should break between the second and third
break-between-avoid-002 =
  • Need to violate break-before:avoid and break-after:avoid if there are no better breakpoints
break-between-avoid-003 =
  • The best breakpoint may be inside content we're already past when running out of space
break-between-avoid-004 =
  • Violate orphans/widows requirements rather than break-before:avoid and break-after:avoid
break-between-avoid-005 =
  • A forced break trumps break avoidance preferences
break-between-avoid-006 =
  • A forced break trumps break avoidance preferences
break-between-avoid-007 =
forced-break-at-fragmentainer-start-000 =
  • A forced break at the block-start of the fragmentainer is allowed, as long as it's otherwise at a valid class A break point
forced-break-at-fragmentainer-start-001 =
  • A forced break at the block-start of the fragmentainer is not allowed unless it's at a valid class A break point
line-after-unbreakable-float-after-padding =
tall-break-inside-avoid-at-start =
  • Cannot break before a child if we're at the block-start of a fragmentainer
tall-line-in-short-fragmentainer-000 =
tall-line-in-short-fragmentainer-001 =
tall-line-in-short-fragmentainer-002 =
+ 4.5 Optimizing Unforced Breaks