Re: Generated Content draft

On Thu, 15 May 2003, Michael Day wrote:
>
> The new working draft for generated and replaced content looks very
> interesting, particularly the move-to property.

Thank you!


> We have recently implemented page headers and footers in Prince using the
> following scheme, which is remarkably similar to move-to/pending:
>
> @page {
>     @top {
>         content: flow(page-header)
>     }
> }
>
> div.header {
>     flow: static(page-header)
> }

(The actual values/properties are -pr-flow(), right?)

This is indeed quite similar. Does it work well? Where there unfortunate
implementation problems worthy of note?


> Will there be a future Paged Media draft that considers page headers and
> footers, along with the footnotes and endnotes that are very briefly
> covered in the new generated content draft?

Yes, that is the intention as I understand it.


> Where does the @footnote declaration that is mentioned here and there in
> the new draft fit in? Is it like the @top / @bottom declarations in the
> Paged Media draft?

Yes, IIRC the page bits are now:

    |  |      |  |
  --+--+------+--+--
    |            |
    |            |
    |            |
    +------------+
    |            |
  --+--+------+--+--
    |  |      |  |

(In ltr layout.)


> Does the appearance of the move-to property indicate that the flow
> property proposed in the old frame based layout draft is never going to
> happen?

No, ideas from the frame based layout draft may still be re-used, or the
entire draft could theoretically become a CSS3 module competing with the
gencon draft, with the most popular one being the one to exit CR.

The main problem with that draft, though, is that there is no way to
specifically override all the frames. With the gencon draft it is possible
to cut off all the generated content using:

   ::outside, ::before, ::after, ::alternate {
     display: none ! important;
   }

I feel it is quite important to be able to do this, from a cascade point
of view.

Many of the features of the frame based layout draft can be done by
reusing arbitrary ::after pseudo-elements, e.g.:

   @frame banner;
   @frame main;
   h1 {flow: banner}
   body {flow: main}

...can be done using:

   :root::after(1) { content: pending(banner); }
   :root::after(2) { content: pending(main); }
   h1 { move-to: banner; }
   body { move-to: main; }


I have to say, I quite like the idea of using 'flow' instead of 'move-to'
and 'pending'.


My main problem with the current draft is the interaction with
inheritance. For technical reasons, inheritance has to happen along the
original document tree, so move-to content doesn't blend in, font and
colour wise. So 'width:100%' is relative to the containing block, but
'width:inherit' is not, when used with move-to. I don't really see a
solution to this. Similarly, I have to define when counters and quotes
take effect -- and there are arguments from doing them at the source just
like there are arguments for doing them at the inclusion point.

-- 
Ian Hickson                                      )\._.,--....,'``.    fL
"meow"                                          /,   _.. \   _\  ;`._ ,.
http://index.hixie.ch/                         `._.-(,_..'--(,_..'`-.;.'

Received on Thursday, 15 May 2003 07:02:00 UTC