Skip to content

Commit 7853abc

Browse files
committed
expand issue text, add OM example
1 parent e40f529 commit 7853abc

2 files changed

Lines changed: 85 additions & 76 deletions

File tree

css3-page-template/Overview.html

Lines changed: 63 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -240,11 +240,11 @@
240240

241241
<h1>CSS Pagination Templates Module Level 3</h1>
242242

243-
<h2 class="no-num no-toc" id=longstatus-date>Editor's Draft 4 April 2012</h2>
243+
<h2 class="no-num no-toc" id=longstatus-date>Editor's Draft 5 April 2012</h2>
244244

245245
<dl>
246246
<dt>This version:
247-
<!--<dd><a href="http://www.w3.org/TR/2012/ED-css3-page-template-20120404/">http://www.w3.org/TR/2012/ED-css3-page-template-20120404/</a>-->
247+
<!--<dd><a href="http://www.w3.org/TR/2012/ED-css3-page-template-20120405/">http://www.w3.org/TR/2012/ED-css3-page-template-20120405/</a>-->
248248

249249

250250
<dd><a
@@ -408,9 +408,9 @@ <h2 id=intro><span class=secno>1. </span>Introduction</h2>
408408
<p>Pagination templates consist of anonymous boxes called slots created by
409409
CSS to contain content. Layouts that use pagination templates mainly
410410
determine the size of these slots from the template definition instead of
411-
the intrinsic size of their content. When content does not fit into a
412-
template slot, additional pages are created with more slots to contain the
413-
overflow content.
411+
the size of their content. When content does not fit into a template slot,
412+
additional pages are created with more slots to contain the overflow
413+
content.
414414

415415
<p>Multiple pagination templates can be defined for a given document. A
416416
paginated element can use a single template or select from a set of
@@ -453,12 +453,16 @@ <h2 id=templates-and-slots><span class=secno>2. </span>Pagination Templates
453453
slot containing the paginated element's contents.
454454

455455
<div class=issue-marker>
456-
<div class=issue-details>Do pagination templates get their size (and other
457-
characteristics) from the element with the overflow-style property, or
458-
does this have be set in the @template rule? Can templates use a default
459-
100%/100% size based on the element's box?</div>
456+
<div class=issue-details>Instead of a dependency on GCPM, this spec could
457+
define what happens with a paginated view, without specifying how the
458+
paginated view comes into existence. What happens when you apply
459+
&lsquo;<code class=css>overflow-style:paged-x</code>&rsquo; to an iframe
460+
or region?</div>
460461
</div>
461462

463+
<p>The box created from an @template rule defaults to the size of the
464+
paginated element's box.
465+
462466
<p>A slot is an anonymous box in a pagination template where content can be
463467
placed. In an @template rule @slot rules name and create slots. The order
464468
of @slot rules determines the order of the boxes in the pagination
@@ -527,26 +531,30 @@ <h2 id=templates-and-slots><span class=secno>2. </span>Pagination Templates
527531
</div>
528532

529533
<div class=issue-marker>
530-
<div class=issue-details>@slot rules are a first pass at defining
531-
CSS-created boxes. Other means of creating and addressing pseudo-element
532-
slots have been discussed on www-style. Another possibility is using HTML
533-
like WebComponents does to define the boxes. However the boxes are
534-
created there needs to be a way of assigning content to boxes and
535-
accessing the template structure through scripting. If pseudo-elements
536-
are used, then OM for pseudo-elements must be defined. If HTML templates
537-
are used a declarative method of mapping content to elements must be
538-
defined.</div>
534+
<div class=issue-details>
535+
<p>@slot rules are a first pass at defining CSS-created boxes. Other
536+
means of creating and addressing pseudo-element slots have been
537+
discussed on www-style. If @slot rules or pseudo-elements are used to
538+
create template boxes, then OM for pseudo-elements must be defined
539+
(scripting and events working with paginated content is a valid use
540+
case).
541+
542+
<p>One argument against using pseudo-elements to create templates is that
543+
this is defining structure in CSS. If nested slots are required, then
544+
we're on a slippery slope towards re-inventing HTML inside of CSS.
545+
546+
<p>An alternative could use Shadow DOM to define the boxes. This gives us
547+
structure and OM, but would need a declarative method of mapping content
548+
to elements. One suggestion was to use @slot rules in a flat list for
549+
the simple case, but start to rely on Shadow DOM for more complicated
550+
cases. If this route is taken, then @slot rules probably aren't
551+
required, as Shadow DOM can also handle the flat list case.
552+
</div>
539553
</div>
540554

541555
<p>Pagination templates can use declarations to determine the layout method
542556
for slots. @slot rules can use sizing and positioning declarations.
543557

544-
<div class=issue-marker>
545-
<div class=issue-details>Is there a need to create more structure, nesting
546-
slots within slots? If so, then slots can also have layout method
547-
declarations?</div>
548-
</div>
549-
550558
<div class=example>
551559
<p>A pagination template could contain two side-by-side slots that
552560
paginate two separate articles. Side-by-side translations are often laid
@@ -642,6 +650,16 @@ <h2 id=conditional-templates><span class=secno>3. </span>Template Selection</h2>
642650
class=property>available-content</code>&rsquo; declarations, or just
643651
taking the first template found.
644652

653+
<div class=issue-marker>
654+
<div class=issue-details>The following section describes selecting
655+
templates with several mechanisms (selectors and declarations, and
656+
presumably @template rules could be scoped by media queries). An
657+
alternative could be to define all selection mechanisms like a media
658+
query, where all of the selection mechanisms are outside the declaration
659+
block. Attempting to define template rejection rather than selection
660+
might also prove fruitful.</div>
661+
</div>
662+
645663
<div class=example>
646664
<p>In this example the divs are paginated using the first template found
647665
from the set of templates that apply to the div. The first div uses
@@ -663,23 +681,6 @@ <h2 id=conditional-templates><span class=secno>3. </span>Template Selection</h2>
663681
</pre>
664682
</div>
665683

666-
<div class="issue-marker wrapper">
667-
<div class=issue-marker>
668-
<div class=issue-details>Instead of specifying a template-set, should
669-
there be a way of scoping @template rules to an element? The reason to
670-
put them on the document is to re-use pagination templates with multiple
671-
elements.</div>
672-
</div>
673-
674-
<div class=issue-marker>
675-
<div class=issue-details>One way of promoting re-use of pagination
676-
templates would be to parameterize the named flow idents. Instead of
677-
using named flow idents directly, @slot rules could use a parameter and
678-
a paginated element using the template would pass in the particular
679-
named flow ident meant for that parameter.</div>
680-
</div>
681-
</div>
682-
683684
<h3 id=ordered-templates><span class=secno>3.1. </span>Selecting Templates
684685
by Page Order</h3>
685686

@@ -693,8 +694,8 @@ <h3 id=ordered-templates><span class=secno>3.1. </span>Selecting Templates
693694
</div>
694695

695696
<div class=issue-marker>
696-
<div class=issue-details>Describe how @template rules with selectors
697-
cascade.</div>
697+
<div class=issue-details>Describe how @template rules cascade with names
698+
and selectors (or how they do not cascade, if that's preferable).</div>
698699
</div>
699700

700701
<div class=example>
@@ -809,8 +810,9 @@ <h3 id=selection-from-available-content><span class=secno>3.3.
809810
</span>Selecting Templates from Available Content</h3>
810811

811812
<p>Pagination templates can be selected based on the order of content in
812-
the original markup. Content may be split out into one or more named
813-
flows, but the original order can be discovered in the markup.
813+
the DOM tree. Content may be split out into one or more named flows, but
814+
the original order can be discovered in the DOM and used for template
815+
selection.
814816

815817
<p>Pagination templates have a &lsquo;<code
816818
class=property>primary</code>&rsquo; content flow. The primary flow for a
@@ -821,9 +823,9 @@ <h3 id=selection-from-available-content><span class=secno>3.3.
821823

822824
<p>When selecting the pagination template for the next page, the primary
823825
flow in the original markup can be scanned to determine whether any
824-
out-of-flow content in named flows was originally related to the next page
825-
of primary flow. If this is the case, then those named flows have
826-
&lsquo;<code class=property>available</code>&rsquo; content for the
826+
out-of-flow content in other named flows was originally related to the
827+
next page of primary flow. If this is the case, then those named flows
828+
have &lsquo;<code class=property>available</code>&rsquo; content for the
827829
purpose of selecting an appropriate template that can display this
828830
content.
829831

@@ -839,7 +841,7 @@ <h3 id=selection-from-available-content><span class=secno>3.3.
839841
displayed in the slots associated with those flows.
840842

841843
<div class=example>
842-
<p>Clarification example
844+
<p>Clarification example (not meant to be a valid use case)
843845

844846
<p>Consider an article element that contains images scattered throughout.
845847
Assign the images to a flow named &lsquo;<code
@@ -856,17 +858,13 @@ <h3 id=selection-from-available-content><span class=secno>3.3.
856858
&lsquo;<code class=property>images</code>&rsquo; flow. Each time a page
857859
is laid out, the original article element is scanned to see whether an
858860
image element is in the next page's worth of content (determined by some
859-
markup-scanning heuristic – not layout). If so, then that content from
860-
the &lsquo;<code class=property>images</code>&rsquo; flow is available
861-
for the purpose of selecting a template.
862-
</div>
863-
864-
<div class=issue-marker>
865-
<div class=issue-details>Expand this.</div>
861+
DOM-tree-scanning heuristic – not layout). If so, then that content
862+
from the &lsquo;<code class=property>images</code>&rsquo; flow is
863+
available for the purpose of selecting a template.
866864
</div>
867865

868866
<div class=example>
869-
<p>Motivational example
867+
<p>Motivational example (meant as a use case)
870868

871869
<p>Assume you have an article that contains both pull quotes and images.
872870
If only images <em>or</em> pull quotes would occur on a page, position
@@ -889,6 +887,14 @@ <h2 id=cssom><span class=secno>4. </span>CSS Object Model</h2>
889887
page should be determinable. Lots to fill out here.</div>
890888
</div>
891889

890+
<div class=example>
891+
<p>Motivational example
892+
893+
<p>Given the side-by-side paginated template for French and English, allow
894+
the user to click and drag the French text from the right to the left to
895+
switch sides for both flows.
896+
</div>
897+
892898
<h2 id=conformance><span class=secno>5. </span>Conformance</h2>
893899

894900
<h2 class=no-num id=acknowledgments>Acknowledgments</h2>

0 commit comments

Comments
 (0)