Re: [css3-gcpm] [css3-page] Named page lists

Also sprach fantasai:

 > >   div.chapter { page: chapter }
 > >   h2 { string-set: title content() }
 > >   @page chapter:left { @top-left { content: string(title) }}
 > >   @page chapter:first { @top-left { content: none }}
 > > 
 > > This code feels right to me, but it wouldn't work as long as 'page' is
 > > inherited (because 'chapter:first' in practice would match all pages).
 > 
 > It looks very elegant, but it's not backwards compatible. :(
 > :first right now is defined to only apply to the first page of the
 > document.

CSS 2.1 says that 'Authors may also specify style for the first page
of a document with the :first pseudo-class' [1]:

  @page :first {
    ...
  }

However, CSS 2.1 doesn't describe the behavior when :first is combined
with a page name, e.g.:

  @page chapter:first {
    ...
  }

So, I think CSS3 is free to define what this should mean. The current
WD [2] even includes syntax examples (in example V and VI) that
combines these:

  @page CompanyLetterHead:first { ... } /*  identifier and pseudo page. */
  @page artsy:first { } /* f=1 g=1 h=0 -> specificity = 110 */ 

It wouldn't make much sense to have them there if any use of :first is
limited to the first page in the document.

Therefore, I suggest that we explicitly state that :first can have
effect on other pages as well.

However, unless we change 'page' from being inherited to being
non-inherited, this feature would be useless; in practice the :first
would apply to all pages.

Therefore, I also suggest that we change 'page' from being inherited
to not being inherited. I don't think the change would affect any
documents in the wild.

[1] http://www.w3.org/TR/CSS21/page.html#page-selectors
[2] http://www.w3.org/TR/2006/WD-css3-page-20061010

-h&kon
              Håkon Wium Lie                          CTO °þe®ª
howcome@opera.com                  http://people.opera.com/howcome

Received on Wednesday, 9 July 2008 12:49:15 UTC