- From: Håkon Wium Lie <howcome@opera.com>
- Date: Wed, 22 Feb 2012 13:37:05 +0100
- To: Brad Kemper <brad.kemper@gmail.com>
- Cc: David Hyatt <hyatt@apple.com>, "www-style@w3.org Style" <www-style@w3.org>
Brad Kemper (and David Hyatt in between) wrote:
> >> I completely agree with this approach. In my view, we almost
> >> have page masters right now, with @page and its related @rules,
> >> except that they are only masters for margin boxes and size, and
> >> not the main content area.
Yes.
> >> If we added column-related properties
> >> to the properties that could be used directly with @page, then
> >> the simple case of having different column numbers, width, etc.
> >> per named page (or pseudo-class selected page) would immediately
> >> be available.
Yes. Like this, perhaps?
@page :first { columns: 3 }
@page { columns: 2 }
Another approach is to center around elements:
body::first-page { columns: 3 }
body { columns: 2 }
> >> If we add to that being able to right rule sets
> >> with selectors within @page (like you can within @region), then
> >> you would be able to change fonts, colors, widths, etc. of any
> >> element based on what page it was in.
Let's see. We could do:
@page :first {
h1 { color: red }
}
But that gets a little messy when we mix in declarations:
@page :first {
columns: 3;
h1 { color: red }
}
Any ambiguities?
Or, perhaps:
@page :first h1 {
color: red
}
> >> If you go one step
> >> further, and add the ability to create an arbitrary number of
> >> pseudo-elements per page, then you could use 'content' with them
> >> to put decorations wherever you want on whatever pages you want,
> >> not just in the margins. I have proposed '@slot()' for this.
Do you have a pointer to your proposal?
> >> combining this with regions, and you could have content flow
> >> from region to region, page to page. You could have your sushi
> >> column in your example work, by flowing it into a slot that is
> >> on the title page and the third page, but not the second.
Perhaps like this?:
@page 1, 3 {
@slot sushi {
position: absolute;
top: 0;
bottom: 0;
right: 0;
width: 10em;
}
}
aside { flowto: sushi }
> >> Anything that didn't fit in a slot because of page size or other
> >> constraints would automatically go to the next available page
> >> with the same 'flow-from'.
> > Yeah, we are definitely on the same page here. (Haha.) I would
> > like to see column rules applicable to @page as well as the
> > ability to define a set of slots for the page that can then be
> > regions. The placement of the slots should be achievable with
> > grid layout, floating or positioning.
Here's a floated sushi:
@page 1, 3 {
@slot sushi {
float: right;
width: 10em;
height: 100%;
}
}
Grid, anyone?
> Exactly my thinking. Cool.
>
> >> Combine all that with overflow:paged by making the pages it
> >> generates obey css3-page, and you've got a complete solution.
Obey, in what way?
> >>> If the CSS Regions spec remains the way it is, though, with
> >>> explicit elements and scripting being the only way to build the
> >>> paginated content, then I think we'll have failed. Page
> >>> masters/templates and automatic generation of regions has to be
> >>> addressed, and the explicit element requirement needs to be
> >>> removed.
Indeed.
-h&kon
Håkon Wium Lie CTO °þe®ª
howcome@opera.com http://people.opera.com/howcome
Received on Wednesday, 22 February 2012 12:37:42 UTC