css-overflow/Overview.bs

changeset 15278
79f716a8ad8f
parent 15277
ec3666d1e63d
child 15279
c4cd57777348
     1.1 --- a/css-overflow/Overview.bs	Tue Feb 24 14:42:29 2015 +0900
     1.2 +++ b/css-overflow/Overview.bs	Tue Feb 24 23:47:34 2015 +0900
     1.3 @@ -464,50 +464,96 @@
     1.4  		'overflow-x' and 'overflow-y' instead?
     1.5  	</p>
     1.6  
     1.7 -<h2 id="fragmentation-properties">Fragmentation properties</h2>
     1.8 +<h2 id="fragmentation">Fragmentation of overflow</h2>
     1.9  
    1.10 -Issue: This section is a WIP, and currently just holds bits of information that need to be massaged into proper form.
    1.11 +	<pre class=propdef>
    1.12 +		Name: continue
    1.13 +		Value: ''auto'' | ''overflow'' | ''paginate'' | ''fragments'' | ''discard'' | ''next'' 
    1.14 +		Initial: ''auto''
    1.15 +		Applies to: block containers [[!CSS21]], flex containers [[!CSS3-FLEXBOX]], and grid containers [[!CSS3-GRID-LAYOUT]]
    1.16 +		Inherited: no
    1.17 +		Percentages: N/A
    1.18 +		Media: visual
    1.19 +		Computed value: see below
    1.20 +		Animatable: no
    1.21 +		Canonical order: <abbr title="follows order of property value definition">per grammar</abbr>
    1.22 +	</pre>
    1.23  
    1.24 - | ''paged-x'' | ''paged-y'' | ''paged-x-controls'' | ''paged-y-controls'' | ''fragments''
    1.25 +Issue: Naming is preliminary.
    1.26 +This was initially proposed as
    1.27 +"fragmentation: auto | none | break | clone | page"
    1.28 +in <a href="https://lists.w3.org/Archives/Public/www-style/2015Jan/0357.html">https://lists.w3.org/Archives/Public/www-style/2015Jan/0357.html</a>
    1.29  
    1.30 -	<p class="issue">
    1.31 -		Are all 4 of the ''paged-*'' values really needed?
    1.32 -	</p>
    1.33 +Note: ''continue: fragments'' replaces "overflow:fragments"
    1.34 +from earlier versions of this specification,
    1.35 +while ''continue: paginate'' replaces "overflow: paged-x | paged-y | paged-x-controls | paged-y-controls"
    1.36  
    1.37 -	<dl>
    1.38 -		<dt><dfn>paged-x</dfn>
    1.39 -		<dt><dfn>paged-y</dfn>
    1.40 -		<dt><dfn>paged-x-controls</dfn>
    1.41 -		<dt><dfn>paged-y-controls</dfn>
    1.42 +Issue: The definitions below are vaguely worded, and need to be more specific.
    1.43 +
    1.44 +	<dl dfn-for="continue" dfn-type="value">
    1.45 +		<dt><dfn>auto</dfn>
    1.46 +		<dd>Behavior varies between the other values, depending on contex.
    1.47 +		See the section below on computed values for details.
    1.48 +
    1.49 +		<dt><dfn>overflow</dfn>
    1.50 +		<dd>Content that doesn't fit overflows, according to the 'overflow' property
    1.51 +
    1.52 +		<dt><dfn>discard</dfn>
    1.53 +		<dd>Content that doesn't fit is discarded at a fragmentation break
    1.54 +
    1.55 +		Note: generalized from region-fragment: break; on the last region of a region chain
    1.56 +		<dt><dfn>next</dfn>
    1.57 +		<dd>Content that doesn't fit is pushed to the next region
    1.58 +		if the element is part of a region chain,
    1.59 +		or to the next page if the element is part of a page chain. If
    1.60 +		there isn't a next region or page, it overflows.
    1.61 +
    1.62 +		Note: Behavior could have been to discard
    1.63 +		but discarding anything should be a very explicit behavior
    1.64 +
    1.65 +		<dt><dfn>paginate</dfn>
    1.66 +		<dd>Content that doesn't fit paginates.
    1.67 +		This creates a paginated view inside the element
    1.68 +		similar to the way that 'overflow: scroll' creates a scrollable view.
    1.69 +
    1.70 +		Pages can be styled with @page rules.
    1.71 +
    1.72 +		Note: Print is effectively "continue: paginate" on the root.
    1.73 +
    1.74 +		See <a href="#paginated-overflow">paginated overflow</a>
    1.75  		<dt><dfn>fragments</dfn>
    1.76 -		<dd>
    1.77 -			These values are collectively the <dfn dfn>fragmenting values</dfn>;
    1.78 -			they are defined in the sections on
    1.79 -			<a href="#paginated-overflow">paginated overflow</a> and
    1.80 -			<a href="#fragment-overflow">fragment overflow</a>.
    1.81 -		</dd>
    1.82 +		<dd>content that doesn't fit causes the element to copy itself and continue laying out.
    1.83 +		See <a href="#fragment-overflow">fragment overflow</a>.
    1.84  	</dl>
    1.85  
    1.86 -	<div class="issue">
    1.87 -		Having split the overflow and fragmentation properties, this issue is no longer relevant, but there are
    1.88 -		useful bits of information in the thread, so I am leaving it here for now.
    1.89 +Issue: There is some overlap between overflow, discard and next.
    1.90 +Only 2 of the 3 ever make sense in any situation,
    1.91 +even though it isn't always the same two.
    1.92 +It may be possible to reduce this to 2 values.
    1.93 +An earlier proposal combined discard and next into break,
    1.94 +although this had the downside of making discard a non explicit behavior.
    1.95  
    1.96 -		There are <a href="http://lists.w3.org/Archives/Public/www-style/2012May/1197.html">discussions</a>
    1.97 -		about how overflow, overflow-style, overflow-x and overflow-y
    1.98 -		should work and interact with each other.
    1.99 -		Until consensus on this topic is reached,
   1.100 -		it is not completely clear which of these
   1.101 -		should be used for
   1.102 -		paged-x | paged-y | paged-x-controls | paged-y-controls | fragments
   1.103 -	</div>
   1.104 -
   1.105 +Note: For background discussions leading to this property, see these threads:
   1.106 +<a href="http://lists.w3.org/Archives/Public/www-style/2012May/1197.html">discussion of overflow, overflow-x, overflow-y and overflow-style</a> and
   1.107 +<a href="https://lists.w3.org/Archives/Public/www-style/2015Jan/0357.html">proposal for a fragmentation property</a>
   1.108  
   1.109  <h2 id="paginated-overflow">Paginated overflow</h2>
   1.110  
   1.111 -<p class="issue">overflow:paginate or overflow:pages (or paged-x, paged-y, paged-x-controls, paged-y-controls as [[CSS3GCPM]] has?)</p>
   1.112 +This section introduces and defines the meaning of the ''continue/paginate'' value of the 'continue' property.
   1.113  
   1.114 -<p class="issue">Ability to display N pages at once
   1.115 -rather than just one page at once?</p>
   1.116 +Issue: Write this section
   1.117 +
   1.118 +Issue: The initial proposal in [[CSS3GCPM]] and implemantation from Opera
   1.119 +used 4 values instead of ''continue/paginate'':
   1.120 +"paged-x | paged-y | paged-x-controls | paged-y-controls".
   1.121 +Should this property also include these values,
   1.122 +or are they better handled as separate properties?
   1.123 +(e.g.: "pagination-layout: auto | horizontal | vertical", "pagination-controls: auto | none")
   1.124 +
   1.125 +Issue: Ability to display N pages at once
   1.126 +rather than just one page at once?
   1.127 +Could this be a value of "pagination-layout", such as:
   1.128 +"pagination-layout: horizontal 2;"
   1.129  
   1.130  	<p class="issue">
   1.131  		The current implementation of paginated overflow uses
   1.132 @@ -515,25 +561,22 @@
   1.133  		rather than the 'overflow-style' property as proposed
   1.134  		in the [[CSS3GCPM]] draft
   1.135  		(which also matches the [[CSS3-MARQUEE]] proposal).
   1.136 -		We should probably switch away from 'overflow-style',
   1.137 -		but that's not 100% clear.
   1.138 +		or the 'continue' property as described here.
   1.139  	</p>
   1.140  
   1.141  <h2 id="fragment-overflow">Fragment overflow</h2>
   1.142  
   1.143 -	<p>
   1.144 -		This section introduces and defines the meaning of
   1.145 -		the new ''fragments'' value of the 'overflow' property.
   1.146 -	</p>
   1.147 +This section introduces and defines the meaning of
   1.148 +the ''continue/fragments'' value of the 'continue' property.
   1.149  
   1.150  	<p>
   1.151 -		When the computed value of 'overflow' for an element is ''fragments'',
   1.152 +		When the computed value of 'continue' for an element is ''continue/fragments'',
   1.153  		and implementations would otherwise have created a box for the element,
   1.154  		then implementations must create a sequence of <dfn>fragment box</dfn>es
   1.155  		for that element.
   1.156 -		(It is possible for an element with ''overflow: fragments''
   1.157 +		(It is possible for an element with ''continue: fragments''
   1.158  		to generate only one <a>fragment box</a>.
   1.159 -		However, if an element's computed 'overflow' is not ''fragments'',
   1.160 +		However, if an element's computed 'continue' is not ''continue/fragments'',
   1.161  		then its box is not a <a>fragment box</a>.)
   1.162  		Every <a>fragment box</a> is a fragmentation container,
   1.163  		and any overflow
   1.164 @@ -579,7 +622,7 @@
   1.165    equal-sized cards&lt;/title&gt;
   1.166  &lt;style&gt;
   1.167    .in-cards {
   1.168 -    overflow: fragments;
   1.169 +    continue: fragments;
   1.170  
   1.171      width: 13em;
   1.172      height: 8em;
   1.173 @@ -608,7 +651,7 @@
   1.174  	</div>
   1.175  
   1.176  	<p class="issue">
   1.177 -		We should specify that ''overflow: fragments'' does not apply
   1.178 +		We should specify that ''continue: fragments'' does not apply
   1.179  		to at least some table parts,
   1.180  		and perhaps other elements as well.
   1.181  		We need to determine exactly which ones.
   1.182 @@ -669,11 +712,11 @@
   1.183  <h4 id="style-of-fragments">Styling of fragments</h4>
   1.184  
   1.185  	<p class="issue">
   1.186 -		Should this apply to fragment overflow only,
   1.187 -		or also to paginated overflow?
   1.188 +		Should this apply to continue:fragments only,
   1.189 +		or also to continue:paginate?
   1.190  		(If it applies,
   1.191  		then stricter property restrictions would be needed
   1.192 -		for paginated overflow.)
   1.193 +		for continue:paginate.)
   1.194  	</p>
   1.195  
   1.196  	<p>
   1.197 @@ -704,7 +747,7 @@
   1.198  		<table class="source-demo-pair"><tr><td><pre>&lt;!DOCTYPE HTML&gt;
   1.199  &lt;style&gt;
   1.200    .bouncy-columns {
   1.201 -    overflow: fragments;
   1.202 +    continue: fragments;
   1.203      width: 6em;
   1.204      height: 10em;
   1.205      float: left;
   1.206 @@ -731,19 +774,15 @@
   1.207  	</div>
   1.208  
   1.209  	<p>
   1.210 -		Styling an ''::nth-fragment()'' pseudo-element with the 'overflow'
   1.211 +		Styling an ''::nth-fragment()'' pseudo-element with the 'continue'
   1.212  		property does take effect;
   1.213  		if a <a>fragment box</a> has a
   1.214 -		computed value of 'overflow' other than ''fragments''
   1.215 +		computed value of 'continue' other than ''fragments''
   1.216  		then that fragment box is the last fragment.
   1.217 -		However, overriding 'overflow' on the first fragment
   1.218 +		However, overriding 'continue' on the first fragment
   1.219  		does not cause the <a>fragment box</a> not to exist;
   1.220  		whether there are fragment boxes at all is determined by
   1.221  		the computed value of overflow for the element.
   1.222 -		<span class="issue">Need to reword this to refer to the
   1.223 -		appropriate choice of 'overflow-x' or 'overflow-y',
   1.224 -		and then point to rule about the handling of the other one
   1.225 -		of 'overflow-x' or 'overflow-y'.</span>
   1.226  	</p>
   1.227  
   1.228  	<p>
   1.229 @@ -767,8 +806,8 @@
   1.230  		Specifying other values of 'display', 'position',
   1.231  		or 'float' is permitted, but is not allowed to change
   1.232  		the computed value of 'display-inside'.
   1.233 -		(Since 'overflow', 'overflow-x', and 'overflow-y' only
   1.234 -		apply to block containers, flex containers, and grid containers
   1.235 +		(Since 'continue' only
   1.236 +		applies to block containers, flex containers, and grid containers
   1.237  		the computed value of 'display-inside' is always
   1.238  		''display-inside/block'', ''display-inside/flex'', or
   1.239  		''display-inside/grid''.
   1.240 @@ -811,7 +850,7 @@
   1.241  		<table class="source-demo-pair"><tr><td><pre>&lt;!DOCTYPE HTML&gt;
   1.242  &lt;style&gt;
   1.243    .article {
   1.244 -    overflow: fragments;
   1.245 +    continue: fragments;
   1.246    }
   1.247    .article::nth-fragment(1) {
   1.248      font-size: 1.5em;
   1.249 @@ -834,9 +873,8 @@
   1.250  <h4 id="style-in-fragments">Styling inside fragments</h4>
   1.251  
   1.252  	<p class="issue">
   1.253 -		Should this apply to fragment overflow only,
   1.254 -		or also to paginated overflow,
   1.255 -		or even to pagination across pages?
   1.256 +		Should this apply to continue:fragments only,
   1.257 +		or also to continue:paginate?
   1.258  	</p>
   1.259  
   1.260  	<p>
   1.261 @@ -886,7 +924,7 @@
   1.262  		<table class="source-demo-pair"><tr><td><pre>&lt;!DOCTYPE HTML&gt;
   1.263  &lt;style&gt;
   1.264    .dark-columns {
   1.265 -    overflow: fragments;
   1.266 +    continue: fragments;
   1.267      width: 6em;
   1.268      height: 10em;
   1.269      float: left;
   1.270 @@ -993,7 +1031,7 @@
   1.271  		<table class="source-demo-pair"><tr><td><pre>&lt;!DOCTYPE HTML&gt;
   1.272  &lt;style&gt;
   1.273    .article {
   1.274 -    overflow: fragments;
   1.275 +    continue: fragments;
   1.276    }
   1.277    .article::first-letter {
   1.278      font-size: 2em;
   1.279 @@ -1020,7 +1058,7 @@
   1.280  
   1.281  	<p class="issue">
   1.282  		This specification should define useful behavior
   1.283 -		for all values of 'overflow'
   1.284 +		for all values of 'overflow' and 'continue'
   1.285  		in static media (such as print).
   1.286  		Current implementation behavior is quite poor and
   1.287  		produces unexpected results when authors have not considered

mercurial