- From: fantasai <fantasai.lists@inkedblade.net>
- Date: Thu, 11 Oct 2007 11:08:37 -0400
- To: fantasai <fantasai.lists@inkedblade.net>
- CC: Michael Day <mikeday@yeslogic.com>, "Grant, Melinda" <melinda.grant@hp.com>, www-style@w3.org
fantasai wrote: > > Michael Day wrote: >> >> Hi fantasai, >> >>> A selector for blank pages generated by page breaks would take care >>> of this. >>> >>> @page :blank { >>> visibility: hidden; >>> } >> >> Prince supports the :blank page class selector, although I think we >> would specify "content: none" rather than visibility. > > That would work in the author style sheet, but not in the UA style sheet: > as soon as the author specifies something else for their margin boxes > > @page { > @top-left { content: "My Header"; } > } > > that has overridden the UA's 'content' rules on :blank. (The UA's rule > is more specific, but it is in a lower level of the cascade.) I got a request for a better explanation of this off-list, and it was suggested I post the explanation here, too: In the Cascade, the primary sort is by origin. 1. UA 2. User 3. Author 4. Author !important 5. User !important *within* each level the sort is by specificity. A rule of high specificity in the UA style sheet gets overridden by a rule of any specificity in an author rule. With the above two sets of rules, for a normal page we get (tweaking syntax here slightly): @page {} @top-right { content: "My content." } and for a blank page we get: @page { visibility: hidden; } @top-right { content: "My content." } The 'visibility' property inherits, so the final value set of properties on @top-right are @top-right { visibility: hidden; content: "My content." } which means the content takes effect, but the box is invisible. If the author wants headers and footers on blank pages, all he has to write is @page { visibility: visible; } and this will override the UA rule. (@page gets visibility: visible, which then inherits into @top-right.) So essentially (I've just realized this), we can have this on-off feature in CSS3 Paged Media even without introducing :blank. All we have to do is specify that blank pages generated by the page break properties are treated as if the @page context had a "visibility: hidden" rule. If an author wants the headers printed, he just adds @page { visibility: visible; } Melinda Grant wrote (off-list): > I think I prefer a specific selector for styling blank pages; it would > provide more flexibility and enable things like the silly blank page > blurb. Sure, I think we should add :blank. :) But I also think it would be a good idea to require in level 3 that the UA have the equivalent of @page :blank { visibility: hidden; } in the UA style sheet. That gives us the functionality we want (ability to turn headers on and off) without adding :blank, and we can add :blank for additional styling options in level 4. Plus I think it's a good default. Lets people reuse the blank pages, if nothing else. ;) What do you think? ~fantasai
Received on Thursday, 11 October 2007 15:09:01 UTC