Skip to content

Commit 299da49

Browse files
committed
[css-break-1][css-flexbox-1] Clarify that break propagation doesn't occur for out-of-flows, that it doesn't affect computed values, and that it uses order-modified document order. #2614
1 parent 33d1308 commit 299da49

File tree

2 files changed

+90
-20
lines changed

2 files changed

+90
-20
lines changed

css-break-3/Overview.bs

+45-12
Original file line numberDiff line numberDiff line change
@@ -256,15 +256,6 @@ Breaks Between Boxes: the 'break-before' and 'break-after' properties</h3>
256256
indicate that content should be kept together.
257257
</p>
258258

259-
<p>
260-
Since breaks are only allowed between siblings,
261-
not between a box and its container (see <a href="#possible-breaks">Possible Break Points</a>),
262-
a 'break-before' value on a first-child box is propagated to its container.
263-
Likewise a 'break-after' value on a last-child box is propagated to its container.
264-
(Conflicting values <a href="#forced-breaks">combine</a> as defined below.)
265-
This propagation stops before it breaks through the nearest matching fragmentation context.
266-
</p>
267-
268259
<p>
269260
Values for 'break-before' and 'break-after' are defined in the sub-sections below.
270261
User Agents must apply these properties to boxes in the normal flow of the <a>fragmentation root</a>.
@@ -365,6 +356,37 @@ Region Break Values</h4>
365356
</dd>
366357
</dl>
367358

359+
<h4 id="break-propagation">
360+
Child→Parent Break Propagation</h4>
361+
362+
<p>
363+
Since breaks are only allowed between siblings,
364+
not between a box and its container
365+
(see <a href="#possible-breaks">Possible Break Points</a>),
366+
break values applied to children at the start/end of a parent
367+
are <dfn lt="propagate|propagation">propagated</dfn> to the parent,
368+
where they can take effect.
369+
</p>
370+
371+
<p>
372+
Specifically--
373+
except in layout modes which define more specific rules
374+
to account for reordering and parallel layout
375+
(e.g. in <a href="http://www.w3.org/TR/css-flexbox-1/#pagination">flex layout</a> [[CSS-FLEXBOX-1]]
376+
or <a href="http://www.w3.org/TR/css-grid-1/#pagination">grid layout</a> [[CSS-GRID-1]])--
377+
a 'break-before' value on a first <a>in-flow</a> child box
378+
is <a>propagated</a> to its container.
379+
Likewise a 'break-after' value on a last <a>in-flow</a> child box
380+
is <a>propagated</a> to its container.
381+
(Conflicting values <a href="#forced-breaks">combine</a> as defined below.)
382+
This propagation stops before it breaks through the nearest matching fragmentation context.
383+
</p>
384+
385+
<p>
386+
Break <a>propagation</a> does not affect <a>computed values</a>;
387+
it is part of interpeting the elements’ computed values for layout.
388+
</p>
389+
368390
<h3 id="break-within">
369391
Breaks Within Boxes: the 'break-inside' property</h3>
370392

@@ -527,7 +549,7 @@ Possible Break Points</h3>
527549

528550
<p class="note">
529551
Other layout models may add breakpoints to the above classes.
530-
For example, [[CSS3-FLEXBOX]] adds certain points within a flex formatting context
552+
For example, [[CSS-FLEXBOX-1]] adds certain points within a flex formatting context
531553
to classes A and C.
532554
</p>
533555

@@ -604,8 +626,8 @@ Forced Breaks</h3>
604626
<p>
605627
A <dfn export>forced break</dfn> is one explicitly indicated by the style sheet author.
606628
A <a>forced break</a> occurs at a <a href="#btw-blocks">class A break point</a> if,
607-
among the 'break-after' properties specified on or propagated to the earlier sibling box
608-
and the 'break-before' properties specified on or propagated to the later sibling box
629+
among the 'break-after' properties specified on or <a>propagated</a> to the earlier sibling box
630+
and the 'break-before' properties specified on or <a>propagated</a> to the later sibling box
609631
there is at least one with a <a>forced break value</a>.
610632
(Thus a <a>forced break value</a> effectively overrides any <a>avoid break value</a>
611633
that also applies at that break point.)
@@ -1102,6 +1124,17 @@ Transforms, Positioning, and Pagination</h3>
11021124
<h2 class="no-num" id="changes">
11031125
Changes</h2>
11041126

1127+
<p>The following significant changes were made since the
1128+
<a href="https://www.w3.org/TR/2017/CR-css-break-3-20170209/">8 February 2017 Candidate Recommendation</a>:
1129+
<ul>
1130+
<li>
1131+
Clarified that break propagation does not affect computed values
1132+
and that other layout modes (e.g. flex and grid) make adjustments
1133+
to the basic break propagation rules,
1134+
and corrected child-to-parent propagation to ignore <a>out-of-flow</a> children.
1135+
(<a href="https://github.com/w3c/csswg-drafts/issues/2614">Issue 2614</a>)
1136+
</ul>
1137+
11051138
<p>The following significant changes were made since the
11061139
<a href="https://www.w3.org/TR/2015/WD-css3-break-20150129/">29 January 2015 Working Draft</a>:
11071140

css-flexbox-1/Overview.bs

+45-8
Original file line numberDiff line numberDiff line change
@@ -2976,33 +2976,40 @@ Fragmenting Flex Layout</h2>
29762976
The <a property lt="break-before">break-*</a> properties apply to flex containers as normal for block-level or inline-level boxes.
29772977
This section defines how they apply to flex items
29782978
and the contents of flex items.
2979+
See the <a href="http://www.w3.org/TR/css-break/">CSS Fragmentation Module</a>
2980+
for more context [[!CSS3-BREAK]].
29792981

29802982
<p>
29812983
The following breaking rules refer to the <a>fragmentation container</a> as the “page”.
29822984
The same rules apply in any other <a>fragmentation context</a>.
29832985
(Substitute “page” with the appropriate <a>fragmentation container</a> type as needed.)
2984-
See the CSS3 Fragmentation Module [[!CSS3-BREAK]].
29852986
For readability, in this section the terms "row" and "column" refer to the relative orientation
29862987
of the <a>flex container</a> with respect to the block flow direction of the <a>fragmentation context</a>,
29872988
rather than to that of the <a>flex container</a> itself.
29882989

29892990
<p>
2990-
The exact layout of a fragmented flex container is not defined in this level of Flexible Box Layout.
2991-
However, breaks inside a flex container are subject to the following rules:
2991+
The exact layout of a fragmented flex container
2992+
is not defined in this level of Flexible Box Layout.
2993+
However, breaks inside a flex container are subject to the following rules
2994+
(interpreted using <a>order-modified document order</a>):
29922995

29932996
<ul>
29942997
<li>
29952998
In a row flex container,
2996-
the 'break-before' and 'break-after' properties on flex items
2999+
the 'break-before' and 'break-after' values on flex items
29973000
are propagated to the flex line.
2998-
The 'break-before' property on the first line
2999-
and the 'break-after' property on the last line
3001+
The 'break-before' values on the first line
3002+
and the 'break-after' values on the last line
30003003
are propagated to the flex container.
30013004

3005+
Note: Break propagation
3006+
(like 'text-decoration' propagation)
3007+
does not affect <a>computed values</a>.
3008+
30023009
<li>
30033010
In a column flex container,
3004-
the 'break-before' property on the first item
3005-
and the 'break-after' property on the last item
3011+
the 'break-before' values on the first item
3012+
and the 'break-after' values on the last item
30063013
are propagated to the flex container.
30073014
Forced breaks on other items are applied to the item itself.
30083015

@@ -3582,6 +3589,36 @@ Changes since the 16 October 2017 CR</h3>
35823589
is floored by the table’s <a>min-content size</a>.
35833590
(<a href="https://github.com/w3c/csswg-drafts/issues/2442">Issue 2442</a>)
35843591

3592+
<li id="change-2017-break-propagation">
3593+
Clarified that break propagation does not affect computed values
3594+
and that <a>order-modified document order</a> is used.
3595+
(<a href="https://github.com/w3c/csswg-drafts/issues/2614">Issue 2614</a>)
3596+
<blockquote>
3597+
<p>
3598+
The exact layout of a fragmented flex container
3599+
is not defined in this level of Flexible Box Layout.
3600+
However, breaks inside a flex container are subject to the following rules
3601+
<ins>(interpreted using <a>order-modified document order</a>)</ins>:
3602+
3603+
<ul>
3604+
<li>
3605+
In a row flex container,
3606+
the 'break-before' and 'break-after' values on flex items
3607+
are propagated to the flex line.
3608+
The 'break-before' values on the first line
3609+
and the 'break-after' values on the last line
3610+
are propagated to the flex container.
3611+
3612+
<ins>
3613+
3614+
Note: Break propagation
3615+
(like 'text-decoration' propagation)
3616+
does not affect <a>computed values</a>.
3617+
3618+
</ins>
3619+
</ul>
3620+
</blockquote>
3621+
35853622
<li>
35863623
Some minor editorial fixes and clarifications.
35873624
</ul>

0 commit comments

Comments
 (0)