Skip to content

Commit c4d5802

Browse files
committed
Modified visual formatting details to use the notion of 'flow fragment height' in used height resolution, step 1/2 of the layout process
1 parent 8cc1bdb commit c4d5802

3 files changed

Lines changed: 98 additions & 141 deletions

File tree

css3-regions/Overview.html

Lines changed: 63 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -437,25 +437,25 @@ <h2 class="no-num no-toc" id=table-of-contents>Table of contents</h2>
437437
<li><a href="#regions-flow-content-box"><span class=secno>7.1.
438438
</span>The Region Flow Content Box (RFBC)</a>
439439
<ul class=toc>
440-
<li><a href="#rfbc-width-computation"><span class=secno>7.1.1.
440+
<li><a href="#rfbc-width-resolution"><span class=secno>7.1.1.
441441
</span>RFCB &lsquo;<code class=property>width</code>&rsquo;
442442
resolution</a>
443443
</ul>
444444

445445
<li><a href="#regions-visual-formatting-steps"><span class=secno>7.2.
446446
</span>Regions visual formatting steps</a>
447447
<ul class=toc>
448-
<li><a href="#rfcb-height-computation"><span class=secno>7.2.1.
449-
</span>Step 1: RFCB intrinsic &lsquo;<code
450-
class=property>height</code>&rsquo; resolution</a>
448+
<li><a href="#rfcb-flow-fragment-height-resolution"><span
449+
class=secno>7.2.1. </span>Step 1: RFCB flow fragment height
450+
resolution</a>
451451
<ul class=toc>
452-
<li><a href="#rfcb-intrinsic-height-resolution-phase-1"><span
453-
class=secno>7.2.1.1. </span>RFCB intrinsic &lsquo;<code
454-
class=property>height</code>&rsquo; resolution, Phase 1</a>
452+
<li><a href="#rfcb-flow-fragment-height-resolution-phase-1"><span
453+
class=secno>7.2.1.1. </span>RFCB flow fragment height resolution,
454+
Phase 1</a>
455455

456-
<li><a href="#rfcb-intrinsic-height-resolution-phase-2"><span
457-
class=secno>7.2.1.2. </span>RFCB intrinsic &lsquo;<code
458-
class=property>height</code>&rsquo; resolution Phase 2</a>
456+
<li><a href="#rfcb-flow-fragment-height-resolution-phase-2"><span
457+
class=secno>7.2.1.2. </span>RFCB flow fragment height resolution
458+
Phase 2</a>
459459
</ul>
460460

461461
<li><a href="#regions-boxes-layout"><span class=secno>7.2.2.
@@ -2438,31 +2438,29 @@ <h3 id=regions-flow-content-box><span class=secno>7.1. </span>The Region
24382438
href="http://www.w3.org/TR/CSS2/visuren.html#block-boxes">block container
24392439
box</a>.
24402440

2441-
<p>With regards to resolving sizes:
2442-
2443-
<ul>
2444-
<li>The <span>RFCB</span> behaves like a <a
2445-
href="http://www.w3.org/TR/CSS2/visudet.html#blockwidth">block-level
2446-
non-replaced element</a> with regards to its &lsquo;<code
2447-
class=property>width</code>&rsquo;.
2448-
2449-
<li>The <span>RFCB</span> behaves like a <a
2450-
href="http://www.w3.org/TR/CSS2/conform.html#replaced-element">replaced
2451-
element</a> with regards to its height. Computing the
2452-
<span>RFCB</span>&lsquo;<code class=css>s <a href="">intrinsic height</a>
2453-
require special processing and is the first step in the process <a
2454-
href="#regions-visual-formatting-steps">detailed later</a>.</code>
2455-
</ul>
2441+
<p>The <span>RFCB</span> is a <a
2442+
href="http://www.w3.org/TR/CSS21/visuren.html#block-boxes">block container
2443+
box</a> with a <a href="">computed</a> &lsquo;<code
2444+
class=property>width</code>&rsquo; of &lsquo;<code
2445+
class=property>auto</code>&rsquo; and a whose <a href="">used</a>
2446+
&lsquo;<code class=property>height</code>&rsquo; is resolved as detailed
2447+
below.
24562448

2457-
<h4 id=rfbc-width-computation><span class=secno>7.1.1. </span>RFCB
2458-
&rsquo;width' resolution</h4>
2449+
<h4 id=rfbc-width-resolution><span class=secno>7.1.1. </span>RFCB
2450+
&lsquo;<code class=property>width</code>&rsquo; resolution</h4>
24592451

24602452
<p>At various points in the visual formatting of documents containing
24612453
regions, the &lsquo;<code class=property>width</code>&rsquo; of RFCBs need
2462-
to be resolved. In all cases, the resolution is done as follows.
2463-
2464-
<p>The &lsquo;<code class=property>width</code>&rsquo; of an
2465-
<span>RFCB</span> is based on its <code class=css>min-content</code>,
2454+
to be resolved. In all cases, the resolution is done following the rules
2455+
for <a
2456+
href="http://www.w3.org/TR/CSS2/visudet.html#Computing_widths_and_margins">calculating
2457+
widths and margins</a> (see <a href="#CSS21"
2458+
rel=biblioentry>[CSS21]<!--{{!CSS21}}--></a>) but using a special method
2459+
for computing the <em>shrink-to-fit</em> width if that measure is needed
2460+
to resolve the &lsquo;<code class=property>width</code>&rsquo; used value.
2461+
2462+
<p>In other words, the &lsquo;<code class=property>width</code>&rsquo; of
2463+
an <span>RFCB</span> is based on its <code class=css>min-content</code>,
24662464
<code class=css>max-content</code>, <code class=css>fill-available</code>
24672465
and <code class=css>fill-content</code> (also called
24682466
<em>shrink-to-fit</em>) sizes, as <a
@@ -2489,8 +2487,9 @@ <h3 id=regions-visual-formatting-steps><span class=secno>7.2.
24892487
laid out in regions is a three step process:
24902488

24912489
<ul>
2492-
<li><em>Step 1: RFCB intrinsic height resolution</em>. In this step, the
2493-
intrinsic heigh of regions flow content boxes is resolved.
2490+
<li><em>Step 1: RFCB <def>flow fragment height</def> resolution</em>. In
2491+
this step, the height of fragments fitting in regions flow content boxes
2492+
is resolved.
24942493

24952494
<li><em>Step 2: document and regions layout</em>. In this step, the
24962495
document content is laid out, including regions and their regions flow
@@ -2507,15 +2506,13 @@ <h3 id=regions-visual-formatting-steps><span class=secno>7.2.
25072506
<p class=caption>Regions visual formatting steps</p>
25082507
</div>
25092508

2510-
<h4 id=rfcb-height-computation><span class=secno>7.2.1. </span>Step 1: RFCB
2511-
intrinsic &lsquo;<code class=property>height</code>&rsquo; resolution</h4>
2509+
<h4 id=rfcb-flow-fragment-height-resolution><span class=secno>7.2.1.
2510+
</span>Step 1: RFCB flow fragment height resolution</h4>
25122511

2513-
<p>Conceptually, resolving the intrinsic &lsquo;<code
2514-
class=property>height</code>&rsquo; of an RFCB is a two phase process.
2512+
<p>Conceptually, resolving the flow fragment height is a two phase process.
25152513

2516-
<h5 id=rfcb-intrinsic-height-resolution-phase-1><span class=secno>7.2.1.1.
2517-
</span>RFCB intrinsic &lsquo;<code class=property>height</code>&rsquo;
2518-
resolution, Phase 1</h5>
2514+
<h5 id=rfcb-flow-fragment-height-resolution-phase-1><span
2515+
class=secno>7.2.1.1. </span>RFCB flow fragment height resolution, Phase 1</h5>
25192516

25202517
<p>The document is laid out with a <a
25212518
href="http://www.w3.org/TR/CSS2/cascade.html#used-value">used</a> height
@@ -2524,20 +2521,15 @@ <h5 id=rfcb-intrinsic-height-resolution-phase-1><span class=secno>7.2.1.1.
25242521
<span>regions</span>. This phase yields resolved position and sizes for
25252522
all regions and their RFCBs in the document.
25262523

2527-
<h5 id=rfcb-intrinsic-height-resolution-phase-2><span class=secno>7.2.1.2.
2528-
</span>RFCB intrinsic &lsquo;<code class=property>height</code>&rsquo;
2529-
resolution Phase 2</h5>
2524+
<h5 id=rfcb-flow-fragment-height-resolution-phase-2><span
2525+
class=secno>7.2.1.2. </span>RFCB flow fragment height resolution Phase 2</h5>
25302526

25312527
<p><a href="#named-flow0">Named flows</a> are laid out in
2532-
<span>regions</span>. For <span>regions</span> whose <a
2533-
href="http://www.w3.org/TR/CSS2/cascade.html#computed-value">computed</a>
2534-
&lsquo;<code class=property>height</code>&rsquo; is <code
2535-
class=css>auto</code>, the user agent computes a new <a
2536-
href="http://www.w3.org/TR/CSS2/cascade.html#used-value">used</a>
2537-
&lsquo;<code class=property>height</code>&rsquo; for the <span>RFCB</span>
2538-
using the remainder of the flow and accounting for <a
2539-
href="http://www.w3.org/TR/css3-break/">fragmentation rules</a>. Note that
2540-
this process accounts for constraints such as the &lsquo;<code
2528+
<span>regions</span>. The user agent computes the <em><span>flow fragment
2529+
height</span></em> for the <span>RFCB</span>s using the remainder of the
2530+
flow and accounting for <a
2531+
href="http://www.w3.org/TR/css3-break/">fragmentation rules</a>. This
2532+
process accounts for constraints such as the &lsquo;<code
25412533
class=property>max-height</code>&rsquo; value, as described in the CSS 2.1
25422534
section on <a
25432535
href="http://www.w3.org/TR/CSS2/visudet.html#Computing_heights_and_margins">calculating
@@ -2552,38 +2544,19 @@ <h5 id=rfcb-intrinsic-height-resolution-phase-2><span class=secno>7.2.1.2.
25522544
href="file:///Users/vhardy/work/W3C/mercurial/csswg/css3-regions/Overview.html#processing-model">rules</a>
25532545
described earlier in this document.
25542546

2555-
<p>This new used &lsquo;<code class=property>height</code>&rsquo; is the
2556-
intrinsic &lsquo;<code class=property>height</code>&rsquo; of the
2557-
<span>RFCB</span> (which behaves like a <a
2558-
href="http://www.w3.org/TR/CSS2/conform.html#replaced-element">replaced
2559-
element</a> with regards to its &lsquo;<code
2560-
class=property>height</code>&rsquo; in the following steps of the
2561-
process).
2562-
2563-
<div class=note>It is important to note that during the Phase 2 of the
2564-
resolution of the RFCB's intrinsic &lsquo;<code
2565-
class=property>height</code>&rsquo;, the RFCB is treated as a block-level
2566-
element (using the CSS 2.1 terminology for <a
2567-
href="http://www.w3.org/TR/CSS2/visudet.html">section 10</a>) for
2568-
&lsquo;<code class=property>height</code>&rsquo; computation. However,
2569-
once the intrinsic &lsquo;<code class=property>height</code>&rsquo; is
2570-
resolved, the RFCB is treated as block-level replaced element for
2571-
&lsquo;<code class=property>height</code>&rsquo; computation.</div>
2572-
25732547
<h4 id=regions-boxes-layout><span class=secno>7.2.2. </span>Step 2: regions
25742548
boxes layout</h4>
25752549

25762550
<p>In this step, the document is laid out according to the normal CSS
2577-
layout rules. RFCB boxes, as described before, are treated as <a
2578-
href="http://www.w3.org/TR/CSS2/visudet.html#blockwidth">block-level
2579-
non-replaced element</a> in normal flow with regards to their &lsquo;<code
2580-
class=property>width</code>&rsquo; and as <a
2581-
href="http://www.w3.org/TR/CSS2/conform.html#replaced-element">replaced
2582-
element</a> with regards to their height. The &lsquo;<code
2583-
class=property>intrinsic</code>&rsquo; height for regions computed in step
2584-
1 may be used in this step (it may not be needed, for example if the
2585-
region's computed &lsquo;<code class=property>height</code>&rsquo; is not
2586-
<code class=css>auto</code>)
2551+
layout rules. RFCB boxes, as described before, are <a
2552+
href="http://www.w3.org/TR/CSS21/visuren.html#block-boxes">block container
2553+
boxes</a>. If a measure of the content is required to resolve the used
2554+
&lsquo;<code class=property>width</code>&rsquo;, the value is resolved as
2555+
described in the <a href="#rfbc-width-resolution">RFCB width
2556+
resolution</a> section. If a measure of the content is required to resolve
2557+
the used height of the RFCB (for example if the region box is absolutely
2558+
positioned), the <span>flow fragment height</span> resolved in Step 1 is
2559+
used.
25872560

25882561
<p>At the end of this step, regions are laid out and ready to receive
25892562
content from their associated <a href="#named-flow0">named flows</a>.
@@ -2666,21 +2639,17 @@ <h3 id=regions-visual-formatting-examples><span class=secno>7.4.
26662639
</pre>
26672640
</div>
26682641

2669-
<p>The following figure shows the visual result for the example
2670-
2671-
<div class=figure> <img alt="Regions visual formatting example"
2672-
src="images/regions-visual-formatting-example.png" width=400px>
2673-
<p class=caption>Region visual formatting example</p>
2674-
</div>
2642+
<p>The following figures illustrate the intermediate results for the visual
2643+
formatting process.
26752644

26762645
<div class=figure> <img alt="Regions visual formatting example"
26772646
src="images/intrinsic-height-phase-1.png" width=370px>
2678-
<p class=caption>Step 1: Resolving intrinsic height (Phase 1)</p>
2647+
<p class=caption>Step 1 - Phase 1: Layout RFBCs with used height of 0</p>
26792648
</div>
26802649

26812650
<div class=figure> <img alt="Step 1: Resolving intrinsic height (Phase 2)"
26822651
src="images/intrinsic-height-phase-2.png" width=370px>
2683-
<p class=caption>Step 1: Resolving intrinsic height (Phase 2)</p>
2652+
<p class=caption>Step 1 - Phase 2: Measure flow fragments heights</p>
26842653
</div>
26852654

26862655
<div class=figure> <img
@@ -2690,6 +2659,12 @@ <h3 id=regions-visual-formatting-examples><span class=secno>7.4.
26902659
href="#named-flow0">named flows</a></p>
26912660
</div>
26922661

2662+
<div class=figure> <img alt="Regions visual formatting example"
2663+
src="images/regions-visual-formatting-example.png" width=400px>
2664+
<p class=caption>Step 3: Final result after laying out named flows in
2665+
regions</p>
2666+
</div>
2667+
26932668
<h2 id=relation-to-document-events><span class=secno>8. </span>Relation to
26942669
document events</h2>
26952670

0 commit comments

Comments
 (0)