- From: Eric W. Sink <eric@csfactory.com>
- Date: Thu, 04 Jun 1998 16:07:37 -0500
- To: www-style@w3.org
--------------- Quickie summary --------------- We'd like to see more flexibility and control over the layout of paged media in CSS. Specifically, we need multiple columns, as well as things like the ability to flow a story from one container on page N to another container on later page M. We assume that these issues may already be under consideration. Would someone please summarize any related efforts? -------------------- More verbose version -------------------- The new support for paged media in CSS2 is a welcome feature. However, we feel that the current spec does not offer enough flexibility. We're considering a set of extensions which allow more powerful control over the layout of paged media. We assume that these issues may already be under consideration. However, we have searched the mailing list archives (www-style) for discussion of related subjects, to no avail. Perhaps a private discussion of this subject has occurred? Specifically, we note that Xanthus has created CSS extensions which address some of these concerns. However, we have not seen any written description of their proposed extensions. SUMMARY PROBLEM STATEMENT: The support for paged media in the CSS2 specification seems to make the assumption that a "page" has only one rectangular content area into which the flow of text proceeds. This model seems insufficient for handling of multiple column layouts, or publications such as newspapers where "stories" are often continued on a later page. CSS2 does not appear to have any facility which could be used to address this need. For example, the box model has no apparent mechanism for specifying that content may flow to another box. We're thinking of an extension which we refer to as "Page Patterns". A page pattern is a specification of the layout of one or more "containers" on a page. A "container" is similar in concept to a box, except that it is not automatically generated from any particular element. Rather, the existence of a container is specified with a CSS at-rule (or something similar), and another CSS directive is used to say that a given piece of content should be flowed into that container. Using this terminology, we would say that the current CSS2 specification supports only one page pattern, and that pattern always has exactly one container, and when that container is "full", its content always flows into an identical container on the page which immediately follows. Furthermore, the CSS2 spec seems to have an assumption that document content obtained from the root element is automatically flowed into the first container on the first page. We would like to enable CSS style sheets to specify: 1. More complex page patterns. For example, specifying a pattern with two tall boxes side-by-side could be used to layout a 2-column paper. More generality than that would be useful. Any given page pattern should allow an arbitrary number of containers in arbitrary positions. 2. Flow links from one container to the next When content is being flowed into a given container, and the container becomes filled, then the content should flow on to another container. CSS markup should allow flexible specification of where that flow should go. 3. Ordering of pages and patterns A page is an instance of a page pattern. Pages are created when the layout engine needs a specific container for flow. For example, let's say a flow link indicates that content is to be continued in container FOO which is specified with pattern BAR. If there are currently no more usable instances of pattern BAR, then a new page will be instantiated so that a FOO is available to continue the flow. Furthermore, we should be able to specify the ordering of page instances. For example, I might want to say that my document should begin with up to 3 instances of pattern A, followed by all instances of pattern B, followed by any remaining instances of pattern C. We've also considered that a rule-based scheme for specifying this kind of page ordering will need to take left and right pages into account. 4. Into which container an element should be flowed It should be possible to specify that a given block should be flowed starting out in a particular container. For example, the style sheet might say that a given DIV should be flowed into container X on the 1st instance of pattern Y. Extending the example, that particular container might specify that its flow link points to container W and the 3rd instance of pattern Z. We've worked these ideas out into a design model which seems powerful enough. However, we have not yet worked out a mapping of our ideas onto a CSS-compatible syntax. It seemed prudent to mention our idea to this mailing list before doing so. 1. Does this kind of feature seem like a reasonable addition to CSS? 2. Is a similar proposal already under consideration? Thanks! -- Eric W. Sink, Software Craftsman CSFactory, Inc. eric@csfactory.com http://www.csfactory.com/
Received on Thursday, 4 June 1998 17:11:33 UTC