- From: Brad Kemper <brad.kemper@gmail.com>
- Date: Fri, 24 Feb 2012 09:05:09 -0800
- To: Håkon Wium Lie <howcome@opera.com>
- Cc: David Hyatt <hyatt@apple.com>, "www-style@w3.org Style" <www-style@w3.org>
- Message-Id: <D38C1A4E-79A5-4159-A361-C93CE286D3FA@gmail.com>
On Feb 23, 2012, at 3:14 PM, Brad Kemper wrote: >>>> Perhaps like this?: >>>> >>>> @page 1, 3 { >>>> @slot sushi { >>>> position: absolute; >>>> top: 0; >>>> bottom: 0; >>>> right: 0; >>>> width: 10em; >>>> } >>>> } >>>> >>>> aside { flowto: sushi } >>> >>> Yeah or you create a named page master with the slot rules and then >>> somehow identify pages 1 and 3 as pointing to that template. >> >> Perhaps: >> >> @page fishy { >> @slot sushi; >> position: absolute; >> top: 0; bottom: 0; >> right: 0; width: 10em; >> } >> } >> @page meaty { ... } >> >> article { page: fishy meaty fishy } >> aside { flowto: sushi } > > Or this: > > @page fishy { > @slot(sushi) { > position: absolute; > top: 0; bottom: 0; > right: 0; width: 10em; > } > @slot() article { margin-right: 11em; } > } > @page { ... } > aside { flowto: sushi } > > The article would flow into the unnamed page normally. The fishy page has an unnamed slot, so the article would also flow into that. '@slot() article' selects that article in that general use slot, with declarations giving it some margin to make room for the sushi sidebar. Actually, I was thinking about this, and you wouldn't need to write a selector for article within the slot, only within the @page, as it wouldn't be in any other slot anyway. So revised code would look like this: @page fishy { @slot(sushi) { position: absolute; top: 0; bottom: 0; right: 0; width: 10em; } article { margin-right: 11em; } } @page { ... } aside { flowto: sushi } However, this then creates a problem with having selectors at the same semantic level as raw declarations (which I was recently informed of being in CSS2.1 already). So, my revised revised proposal is this: '@slot' without any name means "page content region" (with no 'flow-from', as it just receives normal, mundane, non-css3-regions flow), and cannot be styled directly. Instead, it can contain selectors for styling normal content that appears on that page. So the example would look like this: @page fishy { @slot(sushi) { position: absolute; top: 0; bottom: 0; right: 0; width: 10em; } @slot { article { margin-right: 11em; /* meaning, on this page template, */ /* add a right margin to this element */ } } @page { /* default for page 2 */ } aside { flow-to: sushi } article { /* no flow-to, so goes to all pages as normal */ } I suppose we might also need a special property for use within @page that means "don't accept normal flow on this page, and only accept region flow instead".
Received on Friday, 24 February 2012 17:05:45 UTC