[css3-gcpm] Incompatibilities with css3-content

I recently came into the CSS Generated Content for the Paged Media and found
some strangeness comparing between Generated and Replaced Content and
Generated Content for the Paged Media.

css3-content. introduces footnotes with the "::alternate" pseudo-element for
the note itself, "::alternate::marker" for the footnote call, with the
"footnote" content keyword and the "move-to" property, adding a
"content:pending(footnotes)" on the @bottom-left page margin box. This also
works well with endnotes and section-notes, and it relatively easy to write
down:
example:
<p>My content. <span class="note">my note</span></p>
with the following CSS:
.note {
content: footnote;
}
/* this implies:
.note::alternate {
move-to: footnotes;
content: contents;
}
.note {
counter-increment:footnote;
} */
and the following addition to UA defaults:
@counter footnote super-decimal;
@page {
@bottom-left {
content:pending(footnotes);
}
}
If you want end notes instead of footnotes, just change the content value.
If you want custom notes, just ensure that ::alternate is generated and
contains the correct content.
css3-gcpm instead uses the "::footnote-marker" and "::footnote-call"
pseudo-elements, with the "footnote" float keyword, while for the other
types of notes uses the "to()" functional notation in float and "from()" in
content.
example (same content as above):
.note {
float:footnote;
}
/* this implies:
.note::footnote-call, .note::footnote-marker, @footnote page area
*/
on the other side, for endnotes and section-notes it is more difficult as
every property has to be set separately.

In addition to this new pseudo-elements, syntaxes, values and properties
that Paged UAs must implement (and that are not needed, since the same
effect can achieved with the different properties). Therefore I propose that
the whole section about footnotes in css3-gcpm be reduced to the addition of
"@footnotes" and footnotes magics. Also the section on named flows should be
dropped in favour of the move-to property.
The latter leads me to the running header. Can those be achieved without
adding a new "position" value? Position should express the positioning
model, not where the element is actually position, and in many places
"positioned elements" are those which have a position different than static:
this would break it.
I think that adding a keyword to move-to is what we need:
move-to: <identifier> once;
means elements are appended to the <identifier> and then removed when
processing pending() (like footnotes and named flows)
move-to: <identifier> running;
means that the current elements replaces the content of <identifier> and it
is not removed when inserted with pending() (so it may be inserted an
arbitrary number of times)

Other changes that I would like to propose:
1) named strings are defined in two modules, with different syntaxes (in
particular about the page-policy property)
I think they're useful also outside of the Paged Media, so they should be
inside css3-content
2) hypenation is in the scope of Text module (just copying may be fine)
3) we have a ::line-marker and 4 ::line-number pseudo-element: I think that
one of two proposal should be removed

I hope that this will be help the discussion

Giovanni

Received on Sunday, 8 February 2009 15:31:33 UTC