Thu, 11 Oct 2012 12:34:11 -0700
[css-regions] circular dependency section
css3-regions/Overview.html | file | annotate | diff | comparison | revisions | |
css3-regions/Overview.src.html | file | annotate | diff | comparison | revisions |
1.1 --- a/css3-regions/Overview.html Wed Oct 10 16:53:50 2012 -0700 1.2 +++ b/css3-regions/Overview.html Thu Oct 11 12:34:11 2012 -0700 1.3 @@ -12,12 +12,12 @@ 1.4 rel=dcterms.rights> 1.5 <meta content="CSS Regions Module Level 3" name=dcterms.title> 1.6 <meta content=text name=dcterms.type> 1.7 - <meta content=2012-10-09 name=dcterms.issued> 1.8 + <meta content=2012-10-11 name=dcterms.issued> 1.9 <meta content="Vincent Hardy" name=dcterms.creator> 1.10 <meta content="Alex Mogilevsky" name=dcterms.creator> 1.11 <meta content="Alan Stearns" name=dcterms.creator> 1.12 <meta content=W3C name=dcterms.publisher> 1.13 - <meta content="http://www.w3.org/TR/2012/ED-css3-regions-20121009/" 1.14 + <meta content="http://www.w3.org/TR/2012/ED-css3-regions-20121011/" 1.15 name=dcterms.identifier> 1.16 <link href="../shared/style/default.css" rel=stylesheet type="text/css"> 1.17 <script defer=defer 1.18 @@ -50,13 +50,14 @@ 1.19 1.20 <h1 id=css-regions-module>CSS Regions Module Level 3</h1> 1.21 1.22 - <h2 class="no-num no-toc" id=longstatus-date>Editor's Draft 9 October 2012</h2> 1.23 + <h2 class="no-num no-toc" id=longstatus-date>Editor's Draft 11 October 1.24 + 2012</h2> 1.25 1.26 <dl> 1.27 <dt>This version: 1.28 1.29 <dd><a 1.30 - href="http://www.w3.org/TR/2012/ED-css3-regions-20121009/">http://www.w3.org/csswg/css3-regions</a> 1.31 + href="http://www.w3.org/TR/2012/ED-css3-regions-20121011/">http://www.w3.org/csswg/css3-regions</a> 1.32 1.33 <dt>Latest version: 1.34 1.35 @@ -208,6 +209,10 @@ 1.36 1.37 <li><a href="#the-flow-from-property"><span class=secno>3.2. </span>The 1.38 ‘<code class=property>flow-from</code>’ property</a> 1.39 + <ul class=toc> 1.40 + <li><a href="#circular-dependencies"><span class=secno>3.2.1. 1.41 + </span>Cycle Detection</a> 1.42 + </ul> 1.43 1.44 <li><a href="#region-flow-break"><span class=secno>3.3. </span>Region 1.45 flow break properties: ‘<code class=property>break-before</code>’, 1.46 @@ -719,9 +724,10 @@ 1.47 href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier"><ident></a> 1.48 1.49 <dd>The element is taken out of its parent's flow and placed into the flow 1.50 - with the name ‘<code class=css><ident></code>’. The element is 1.51 - said to have a <dfn id=specified-flow>specified flow</dfn>. The values 1.52 - ‘<code class=property>none</code>’, ‘<code 1.53 + with the name ‘<code class=css><a 1.54 + href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier"><ident></a></code>’. 1.55 + The element is said to have a <dfn id=specified-flow>specified 1.56 + flow</dfn>. The values ‘<code class=property>none</code>’, ‘<code 1.57 class=property>inherit</code>’, ‘<code 1.58 class=property>default</code>’, ‘<code class=property>auto</code>’ 1.59 and ‘<code class=property>initial</code>’ are invalid flow names. 1.60 @@ -889,7 +895,8 @@ 1.61 <dd>The block container is not a <a href="#css-region" 1.62 title=region>region</a>. 1.63 1.64 - <dt><strong><ident></strong> 1.65 + <dt><strong><a 1.66 + href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier"><ident></a></strong> 1.67 1.68 <dd> If the ‘<code class=property>content</code>’ property computes to 1.69 something else than ‘<code class=property>normal</code>’ (or ‘<code 1.70 @@ -907,22 +914,11 @@ 1.71 href="http://www.w3.org/TR/CSS21/visuren.html#principal-box">principal 1.72 boxes</a> of the <a href="#css-region">regions</a> in the <a 1.73 href="#region-chain0">region chain</a>. <br> 1.74 - If there is no flow with name <ident>, then the block container 1.75 - does not format any content visually. <br> 1.76 - Likewise, if the block container is part of the flow with name 1.77 - <ident>, then the block container does not format any content 1.78 - visually. 1.79 + If there is no flow with name <a 1.80 + href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier"><ident></a>, 1.81 + then the block container does not format any content visually. 1.82 </dl> 1.83 1.84 - <div class=issue-marker data-bug_id=16819 data-bug_status=ASSIGNED> <a 1.85 - href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=16819">Issue-16819</a> 1.86 - 1.87 - <div class=issue-details> 1.88 - <p class=short-desc>No display when combining flow-from and flow-into is 1.89 - bad 1.90 - </div> 1.91 - </div> 1.92 - 1.93 <p>A <span>CSS Region</span>‘<code class=css>s document children are not 1.94 visually formatted unless they are directed to a <a 1.95 href="#named-flow0">named flow</a> with an associated <a 1.96 @@ -930,8 +926,10 @@ 1.97 1.98 <div class=note><span class=note-prefix>Note </span> 1.99 <p>An block container becomes a <span>CSS Region</span> when its 1.100 - ’flow-from' property is set to a valid <ident> value, even if 1.101 - there is no content contributing to the referenced flow. For example: 1.102 + ’flow-from' property is set to a valid <a 1.103 + href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier"><ident></a> 1.104 + value, even if there is no content contributing to the referenced flow. 1.105 + For example: 1.106 1.107 <pre> 1.108 <style> 1.109 @@ -1019,6 +1017,43 @@ 1.110 class=property>height</code>’ values are resolved for <span>CSS 1.111 Region</span> boxes. 1.112 1.113 + <h4 id=circular-dependencies><span class=secno>3.2.1. </span>Cycle 1.114 + Detection</h4> 1.115 + 1.116 + <p><a href="#named-flow0">Named flows</a> containing elements where the 1.117 + value of ‘<a href="#flow-from"><code 1.118 + class=property>flow-from</code></a>’ computes to an <a 1.119 + href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier"><ident></a> 1.120 + can produce nonsensical circular relationships, such as a <a 1.121 + href="#named-flow0">named flow</a> containing <span>CSS Regions</span> in 1.122 + its own <a href="#region-chain0">region chain</a>. These relationships can 1.123 + be easily and reliably detected and resolved, however, by keeping track of 1.124 + a dependency graph and using common cycle-detection algorithms. 1.125 + 1.126 + <p>The dependency graph consists of edges such that: 1.127 + 1.128 + <ul> 1.129 + <li>Every <a href="#named-flow0">named flow</a> depends on its elements 1.130 + where the value of ‘<a href="#flow-from"><code 1.131 + class=property>flow-from</code></a>’ computes to an <a 1.132 + href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier"><ident></a> 1.133 + . 1.134 + 1.135 + <li>Every element in a <a href="#named-flow0">named flow</a> where the 1.136 + value of ‘<a href="#flow-from"><code 1.137 + class=property>flow-from</code></a>’ computes to an <a 1.138 + href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier"><ident></a> 1.139 + depends on the <a href="#named-flow0">named flow</a> with the <a 1.140 + href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier"><ident></a> 1.141 + name. 1.142 + </ul> 1.143 + 1.144 + <p>If the graph contains a cycle, any elements where the value of ‘<a 1.145 + href="#flow-from"><code class=property>flow-from</code></a>’ computes to 1.146 + an <a 1.147 + href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier"><ident></a> 1.148 + participating in the cycle do not become <span>CSS Regions</span>. 1.149 + 1.150 <h3 id=region-flow-break><span class=secno>3.3. </span>Region flow break 1.151 properties: ‘<a href="#break-before"><code 1.152 class=property>break-before</code></a>’, ‘<a href="#break-after"><code 1.153 @@ -2769,6 +2804,8 @@ 1.154 28<sup>th</sup> 2012</a> version</h3> 1.155 1.156 <ul> 1.157 + <li>Added section on handling circular flow-from and flow-into situations 1.158 + 1.159 <li>Added alignment and justification to region styling properties 1.160 1.161 <li>Added timing for regionLayoutUpdate event 1.162 @@ -3320,14 +3357,6 @@ 1.163 <h2 class=no-num id=references>References</h2> 1.164 1.165 <div class="issue-marker wrapper"> 1.166 - <div class=issue-marker data-bug_id=16404 data-bug_status=ASSIGNED> <a 1.167 - href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=16404">Issue-16404</a> 1.168 - 1.169 - <div class=issue-details> 1.170 - <p class=short-desc>Fix specification dependencies 1.171 - </div> 1.172 - </div> 1.173 - 1.174 <div class=issue-marker data-bug_id=18767 data-bug_status=NEW> <a 1.175 href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=18767">Issue-18767</a> 1.176
2.1 --- a/css3-regions/Overview.src.html Wed Oct 10 16:53:50 2012 -0700 2.2 +++ b/css3-regions/Overview.src.html Thu Oct 11 12:34:11 2012 -0700 2.3 @@ -502,7 +502,7 @@ 2.4 <dd>The element is taken out 2.5 of its parent's flow 2.6 and placed into the flow 2.7 - with the name '<ident>'. 2.8 + with the name '<a href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier"><ident></a>'. 2.9 The element is said to have 2.10 a <dfn id="specified-flow">specified flow</dfn>. 2.11 The values 'none', 'inherit', 'default', 'auto' and 'initial' 2.12 @@ -701,7 +701,7 @@ 2.13 2.14 <dd>The block container is not a <span title="region">region</span>.</dd> 2.15 2.16 - <dt><strong><ident></strong></dt> 2.17 + <dt><strong><a href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier"><ident></a></strong></dt> 2.18 2.19 <dd> 2.20 If the 'content' property computes 2.21 @@ -721,24 +721,13 @@ 2.22 of the <span>regions</span> 2.23 in the <span>region chain</span>. 2.24 <br/> 2.25 - If there is no flow with name <ident>, 2.26 + If there is no flow with name 2.27 + <a href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier"><ident></a>, 2.28 then the block container does not 2.29 format any content visually. 2.30 - <br/> 2.31 - Likewise, if the block container is part 2.32 - of the flow with name <ident>, 2.33 - then the block container does not 2.34 - format any content visually. 2.35 </dd> 2.36 </dl> 2.37 2.38 - <div class="issue-marker" data-bug_id="16819" data-bug_status="ASSIGNED"> 2.39 - <a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=16819">Issue-16819</a> 2.40 - <div class="issue-details"> 2.41 - <p class="short-desc">No display when combining flow-from and flow-into is bad</p> 2.42 - </div> 2.43 - </div> 2.44 - 2.45 <p>A <span>CSS Region</span>'s document children 2.46 are not visually formatted 2.47 unless they are directed 2.48 @@ -748,7 +737,7 @@ 2.49 <div class="note"><span class="note-prefix">Note </span> 2.50 <p>An block container becomes a <span>CSS Region</span> 2.51 when its 'flow-from' property is set 2.52 - to a valid <ident> value, 2.53 + to a valid <a href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier"><ident></a> value, 2.54 even if there is no content contributing 2.55 to the referenced flow. 2.56 For example:</p> 2.57 @@ -855,6 +844,41 @@ 2.58 'width' and 'height' values are resolved 2.59 for <span>CSS Region</span> boxes.</p> 2.60 2.61 + <h4 id="circular-dependencies">Cycle Detection</h4> 2.62 + 2.63 + <p><span>Named flows</span> containing elements 2.64 + where the value of 'flow-from' computes to an 2.65 + <a href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier"><ident></a> 2.66 + can produce nonsensical circular relationships, 2.67 + such as a <span>named flow</span> containing <span>CSS Regions</span> 2.68 + in its own <span>region chain</span>. 2.69 + These relationships can be easily 2.70 + and reliably detected and resolved, however, 2.71 + by keeping track of a dependency graph 2.72 + and using common cycle-detection algorithms.</p> 2.73 + 2.74 + <p>The dependency graph consists of edges such that:</p> 2.75 + 2.76 + <ul> 2.77 + <li>Every <span>named flow</span> depends on its elements 2.78 + where the value of 'flow-from' computes to an 2.79 + <a href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier"><ident></a> 2.80 + .</li> 2.81 + <li>Every element in a <span>named flow</span> 2.82 + where the value of 'flow-from' computes to an 2.83 + <a href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier"><ident></a> 2.84 + depends on the <span>named flow</span> with the 2.85 + <a href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier"><ident></a> 2.86 + name.</li> 2.87 + </ul> 2.88 + 2.89 + <p>If the graph contains a cycle, 2.90 + any elements where the value of 'flow-from' 2.91 + computes to an 2.92 + <a href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier"><ident></a> 2.93 + participating in the cycle 2.94 + do not become <span>CSS Regions</span>.</p> 2.95 + 2.96 <h3 id= 2.97 "region-flow-break">Region 2.98 flow break properties: 'break-before', 'break-after', 'break-inside'</h3> 2.99 @@ -2416,6 +2440,7 @@ 2.100 <h3 id="changes_from_Aug_28_2012">Changes from <a href="http://www.w3.org/TR/2012/WD-css3-regions-20120823/">August 28<sup>th</sup> 2012</a> version</h3> 2.101 2.102 <ul> 2.103 + <li>Added section on handling circular flow-from and flow-into situations</li> 2.104 <li>Added alignment and justification to region styling properties</li> 2.105 <li>Added timing for regionLayoutUpdate event</li> 2.106 <li>Clarified interaction between content and flow-from for pseudo-elements</li> 2.107 @@ -2762,12 +2787,6 @@ 2.108 <h2 class="no-num" id="references">References</h2> 2.109 2.110 <div class="issue-marker wrapper"> 2.111 - <div class="issue-marker" data-bug_id="16404" data-bug_status="ASSIGNED"> 2.112 - <a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=16404">Issue-16404</a> 2.113 - <div class="issue-details"> 2.114 - <p class="short-desc">Fix specification dependencies</p> 2.115 - </div> 2.116 - </div> 2.117 <div class="issue-marker" data-bug_id="18767" data-bug_status="NEW"> 2.118 <a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=18767">Issue-18767</a> 2.119 <div class="issue-details">