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+ ‘< code class =css > overflow-style:paged-x</ code > ’ 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 > ’ 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 ‘< code
816818 class =property > primary</ code > ’ 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- ‘< code class =property > available</ code > ’ 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 ‘< code class =property > available</ code > ’ 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 ‘< code
@@ -856,17 +858,13 @@ <h3 id=selection-from-available-content><span class=secno>3.3.
856858 ‘< code class =property > images</ code > ’ 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 ‘< code class =property > images</ code > ’ 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 ‘< code class =property > images</ code > ’ 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