[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

Tue, 01 May 2018 18:10:16 -0700

author
fantasai <fantasai.bugs@inkedblade.net>
date
Tue, 01 May 2018 18:10:16 -0700
changeset 21019
fa5bc2b61b56
parent 21018
3d38773bfc3c
child 21020
d5a1b4e29fa5
child 21021
b7bbb9dadc3d

[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

css-break-3/Overview.bs file | annotate | diff | comparison | revisions
css-flexbox-1/Overview.bs file | annotate | diff | comparison | revisions
     1.1 --- a/css-break-3/Overview.bs	Tue May 01 17:19:48 2018 -0700
     1.2 +++ b/css-break-3/Overview.bs	Tue May 01 18:10:16 2018 -0700
     1.3 @@ -257,15 +257,6 @@
     1.4    </p>
     1.5  
     1.6    <p>
     1.7 -    Since breaks are only allowed between siblings,
     1.8 -    not between a box and its container (see <a href="#possible-breaks">Possible Break Points</a>),
     1.9 -    a 'break-before' value on a first-child box is propagated to its container.
    1.10 -    Likewise a 'break-after' value on a last-child box is propagated to its container.
    1.11 -    (Conflicting values <a href="#forced-breaks">combine</a> as defined below.)
    1.12 -    This propagation stops before it breaks through the nearest matching fragmentation context.
    1.13 -  </p>
    1.14 -
    1.15 -  <p>
    1.16      Values for 'break-before' and 'break-after' are defined in the sub-sections below.
    1.17      User Agents must apply these properties to boxes in the normal flow of the <a>fragmentation root</a>.
    1.18      User agents should also apply these properties to floated boxes
    1.19 @@ -365,6 +356,37 @@
    1.20      </dd>
    1.21    </dl>
    1.22  
    1.23 +<h4 id="break-propagation">
    1.24 +Child→Parent Break Propagation</h4>
    1.25 +
    1.26 +  <p>
    1.27 +    Since breaks are only allowed between siblings,
    1.28 +    not between a box and its container
    1.29 +    (see <a href="#possible-breaks">Possible Break Points</a>),
    1.30 +    break values applied to children at the start/end of a parent
    1.31 +    are <dfn lt="propagate|propagation">propagated</dfn> to the parent,
    1.32 +    where they can take effect.
    1.33 +  </p>
    1.34 +
    1.35 +  <p>
    1.36 +    Specifically--
    1.37 +    except in layout modes which define more specific rules
    1.38 +    to account for reordering and parallel layout
    1.39 +    (e.g. in <a href="http://www.w3.org/TR/css-flexbox-1/#pagination">flex layout</a> [[CSS-FLEXBOX-1]]
    1.40 +    or <a href="http://www.w3.org/TR/css-grid-1/#pagination">grid layout</a> [[CSS-GRID-1]])--
    1.41 +    a 'break-before' value on a first <a>in-flow</a> child box
    1.42 +    is <a>propagated</a> to its container.
    1.43 +    Likewise a 'break-after' value on a last <a>in-flow</a> child box
    1.44 +    is <a>propagated</a> to its container.
    1.45 +    (Conflicting values <a href="#forced-breaks">combine</a> as defined below.)
    1.46 +    This propagation stops before it breaks through the nearest matching fragmentation context.
    1.47 +  </p>
    1.48 +
    1.49 +  <p>
    1.50 +    Break <a>propagation</a> does not affect <a>computed values</a>;
    1.51 +    it is part of interpeting the elements’ computed values for layout.
    1.52 +  </p>
    1.53 +
    1.54  <h3 id="break-within">
    1.55  Breaks Within Boxes: the 'break-inside' property</h3>
    1.56  
    1.57 @@ -527,7 +549,7 @@
    1.58  
    1.59    <p class="note">
    1.60      Other layout models may add breakpoints to the above classes.
    1.61 -    For example, [[CSS3-FLEXBOX]] adds certain points within a flex formatting context
    1.62 +    For example, [[CSS-FLEXBOX-1]] adds certain points within a flex formatting context
    1.63      to classes A and C.
    1.64    </p>
    1.65  
    1.66 @@ -604,8 +626,8 @@
    1.67    <p>
    1.68      A <dfn export>forced break</dfn> is one explicitly indicated by the style sheet author.
    1.69      A <a>forced break</a> occurs at a <a href="#btw-blocks">class A break point</a> if,
    1.70 -    among the 'break-after' properties specified on or propagated to the earlier sibling box
    1.71 -    and the 'break-before' properties specified on or propagated to the later sibling box
    1.72 +    among the 'break-after' properties specified on or <a>propagated</a> to the earlier sibling box
    1.73 +    and the 'break-before' properties specified on or <a>propagated</a> to the later sibling box
    1.74      there is at least one with a <a>forced break value</a>.
    1.75      (Thus a <a>forced break value</a> effectively overrides any <a>avoid break value</a>
    1.76      that also applies at that break point.)
    1.77 @@ -1103,6 +1125,17 @@
    1.78  Changes</h2>
    1.79  
    1.80    <p>The following significant changes were made since the
    1.81 +    <a href="https://www.w3.org/TR/2017/CR-css-break-3-20170209/">8 February 2017 Candidate Recommendation</a>:
    1.82 +  <ul>
    1.83 +    <li>
    1.84 +      Clarified that break propagation does not affect computed values
    1.85 +      and that other layout modes (e.g. flex and grid) make adjustments
    1.86 +      to the basic break propagation rules,
    1.87 +      and corrected child-to-parent propagation to ignore <a>out-of-flow</a> children.
    1.88 +      (<a href="https://github.com/w3c/csswg-drafts/issues/2614">Issue 2614</a>)
    1.89 +  </ul>
    1.90 +
    1.91 +  <p>The following significant changes were made since the
    1.92      <a href="https://www.w3.org/TR/2015/WD-css3-break-20150129/">29 January 2015 Working Draft</a>:
    1.93  
    1.94    <ul>
     2.1 --- a/css-flexbox-1/Overview.bs	Tue May 01 17:19:48 2018 -0700
     2.2 +++ b/css-flexbox-1/Overview.bs	Tue May 01 18:10:16 2018 -0700
     2.3 @@ -2976,33 +2976,40 @@
     2.4  		The <a property lt="break-before">break-*</a> properties apply to flex containers as normal for block-level or inline-level boxes.
     2.5  		This section defines how they apply to flex items
     2.6  		and the contents of flex items.
     2.7 +		See the <a href="http://www.w3.org/TR/css-break/">CSS Fragmentation Module</a>
     2.8 +		for more context [[!CSS3-BREAK]].
     2.9  
    2.10  	<p>
    2.11  		The following breaking rules refer to the <a>fragmentation container</a> as the “page”.
    2.12  		The same rules apply in any other <a>fragmentation context</a>.
    2.13  		(Substitute “page” with the appropriate <a>fragmentation container</a> type as needed.)
    2.14 -		See the CSS3 Fragmentation Module [[!CSS3-BREAK]].
    2.15  		For readability, in this section the terms "row" and "column" refer to the relative orientation
    2.16  		of the <a>flex container</a> with respect to the block flow direction of the <a>fragmentation context</a>,
    2.17  		rather than to that of the <a>flex container</a> itself.
    2.18  
    2.19  	<p>
    2.20 -		The exact layout of a fragmented flex container is not defined in this level of Flexible Box Layout.
    2.21 -		However, breaks inside a flex container are subject to the following rules:
    2.22 +		The exact layout of a fragmented flex container
    2.23 +		is not defined in this level of Flexible Box Layout.
    2.24 +		However, breaks inside a flex container are subject to the following rules
    2.25 +		(interpreted using <a>order-modified document order</a>):
    2.26  
    2.27  	<ul>
    2.28  		<li>
    2.29  			In a row flex container,
    2.30 -			the 'break-before' and 'break-after' properties on flex items
    2.31 +			the 'break-before' and 'break-after' values on flex items
    2.32  			are propagated to the flex line.
    2.33 -			The 'break-before' property on the first line
    2.34 -			and the 'break-after' property on the last line
    2.35 +			The 'break-before' values on the first line
    2.36 +			and the 'break-after' values on the last line
    2.37  			are propagated to the flex container.
    2.38  
    2.39 +			Note: Break propagation
    2.40 +			(like 'text-decoration' propagation)
    2.41 +			does not affect <a>computed values</a>.
    2.42 +
    2.43  		<li>
    2.44  			In a column flex container,
    2.45 -			the 'break-before' property on the first item
    2.46 -			and the 'break-after' property on the last item
    2.47 +			the 'break-before' values on the first item
    2.48 +			and the 'break-after' values on the last item
    2.49  			are propagated to the flex container.
    2.50  			Forced breaks on other items are applied to the item itself.
    2.51  
    2.52 @@ -3582,6 +3589,36 @@
    2.53  			is floored by the table’s <a>min-content size</a>.
    2.54  			(<a href="https://github.com/w3c/csswg-drafts/issues/2442">Issue 2442</a>)
    2.55  
    2.56 +		<li id="change-2017-break-propagation">
    2.57 +			Clarified that break propagation does not affect computed values
    2.58 +			and that <a>order-modified document order</a> is used.
    2.59 +			(<a href="https://github.com/w3c/csswg-drafts/issues/2614">Issue 2614</a>)
    2.60 +			<blockquote>
    2.61 +				<p>
    2.62 +					The exact layout of a fragmented flex container
    2.63 +					is not defined in this level of Flexible Box Layout.
    2.64 +					However, breaks inside a flex container are subject to the following rules
    2.65 +					<ins>(interpreted using <a>order-modified document order</a>)</ins>:
    2.66 +
    2.67 +				<ul>
    2.68 +					<li>
    2.69 +						In a row flex container,
    2.70 +						the 'break-before' and 'break-after' values on flex items
    2.71 +						are propagated to the flex line.
    2.72 +						The 'break-before' values on the first line
    2.73 +						and the 'break-after' values on the last line
    2.74 +						are propagated to the flex container.
    2.75 +
    2.76 +						<ins>
    2.77 +
    2.78 +						Note: Break propagation
    2.79 +						(like 'text-decoration' propagation)
    2.80 +						does not affect <a>computed values</a>.
    2.81 +
    2.82 +						</ins>
    2.83 +				</ul>
    2.84 +			</blockquote>
    2.85 +
    2.86  		<li>
    2.87  			Some minor editorial fixes and clarifications.
    2.88  	</ul>

mercurial