- From: MURAKAMI Shinyu <murakami@antenna.co.jp>
- Date: Thu, 21 Aug 2008 05:32:22 +0900
- To: Håkon Wium Lie <howcome@opera.com>
- Cc: www-style@w3.org
Håkon Wium Lie <howcome@opera.com> wrote on 2008/08/20 23:53:47
> Also sprach MURAKAMI Shinyu:
>
> > > Alternatively, a single 'normal' value could reset the page sequence,
> > > i.e. remove any current page sequence.
> >
> > problem:
> >
> > <table>...</table>
> > <table>...</table>
> > <p>This text is not rendered on a rotated page.</p>
> >
> > The <p> has 'page: auto' (by default) and if 'auto' means
> > "the element continues on the page sequence already established",
> > the <p> is rendred on a rotated page :-(
>
> So, you want an element with "page: auto" to end the page sequence?
I assumed that the UC4 (css3-page's example) requires it.
>
> I see some issues with that. First, the child elements with of <table>
> will also have "page: auto" and thouse should not end the page
> sequence. Second, in UC2:
>
> <h1>The beginning</h1>
> <p>...
> <h1>The end</h1>
> <p>...
>
> The <p> elements will also have "page: auto", but we don't want them
> to end the page sequence either.
Now I've reconsidered.
I'd like to change the meaning of the 'auto' value:
If the named page list contains 'auto' value, the next element with
"page: auto" doesn't establish a new page sequence.
e.g.,
table { page: rotated auto }
<table>...</table>
<p>This text is rendered on a rotated page.</p>
If the named page list has no 'auto' value, the next element with
"page: auto" ends the current page sequence and starts a new page
sequence.
e.g.,
table { page: rotated }
<table>...</table>
<p>This text is not rendered on a rotated page.</p>
or
table { page: rotated-1 rotated-2 }
<table>...</table>
<p>This text is not rendered on a rotated page.</p>
(note that the single value and multiple value have same policy about
page sequence establishment)
I'd also like the 'page-group' property in the recent GCPM draft.
http://dev.w3.org/csswg/css3-gcpm/#page-groups
If 'page-group' has value 'auto', the element with named page list same
as of the current page sequence doesn't establish a new page sequence.
e.g.,
table { page: rotated; page-group: auto }
<table>...</table>
<table>...</table>
<p>This text is not rendered on a rotated page.</p>
(two tables are rendered on the same page if they fit.)
It solves all use cases:
UC1:
<div class="chapter">
<h1>The beginning</h1>
....
</div>
<div class="chapter">
<h1>The end</h1>
....
</div>
-with-
@page chapter {
@top-center { content: string(title) }
}
@page chapter:first {
@top-center { content: none }
}
div.chapter { page: chapter; page-group: start }
h1 { string-set: title content() }
-or-
@page chapter {
@top-center { content: string(title) }
}
@page chapter-start {
@top-center { content: none }
}
div.chapter { page: chapter-start chapter; page-group: start }
h1 { string-set: title content() }
UC2:
<h1>The beginning</h1>
....
<h1>The end</h1>
....
-with-
@page chapter {
@top-center { content: string(title) }
}
@page chapter:first {
@top-center { content: none }
}
h1 { page: chapter auto; page-group: start;
string-set: title content() }
-or-
@page chapter {
@top-center { content: string(title) }
}
@page chapter-start {
@top-center { content: none }
}
h1 { page: chapter-start chapter auto; page-group: start;
string-set: title content() }
UC3:
No change.
@page rotated { size: landscape }
table { page: rotated }
UC4:
No change.
In this example, the two tables are rendered on landscape pages
(indeed, on the same page, if they fit). The page type "narrow"
is used for the <p> after the second table, as the page
properties for the table element are no longer in effect:
@page narrow { size: 9cm 18cm }
@page rotated { size: landscape }
div { page: narrow }
table { page: rotated }
with this document:
<div>
<table>...</table>
<table>...</table>
<p>This text is rendered on a 'narrow' page</p>
</div>
--
Shinyu Murakami
http://www.antennahouse.com
http://www.antenna.co.jp/AHF/
Received on Wednesday, 20 August 2008 20:33:20 UTC