- From: Simon Sapin <simon.sapin@exyr.org>
- Date: Mon, 04 Mar 2013 17:01:31 +0100
- To: Julian Viereck <julian.viereck@googlemail.com>
- CC: www-style@w3.org, Robert O'Callahan <robert@ocallahan.org>
Le 03/03/2013 00:54, Julian Viereck a écrit :
> Reading the spec I cannot find a part that defines what should happen
> with the UA's default header/footer of a HTML page when it is printed.
> In the usecase of the PDF viewer, as a user prints a PDF page s/he
> doesn't expect to see the default UA's print header/footer. To disable
> the default header/footer in Gecko/Firefox, I've implemented a new flag
> "moznomarginboxes" on the <html> tag [1]. With this flag, a webpage
> signals Gecko/Firefox to set the footer/header to "blank" by default.
> The user has still the possibility to change the footer/header to a
> different value then "blank" from the print-option dialog.
>
> I'm aware that this is the CSS mailing list and not a HTML one, which
> might look more suited to discuss adding new flags on HTML tags at first
> sight. However, as CSS Paged Media spec defines a lot of the printing
> properties, I considered it worth raising this issue on this list.
>
> Summing up, here are some questions that I hope lead to a good
> discussion of this issue:
>
> - Does adding a flag like "nomarginboxes" makes sense?
What’s a flag in this context? Is it something that can be switched from
JavaScript? From CSS?
> - Is there a better way to specify "disable the browsers default
> header/footer when printing" by using CSS?
No. At least not in the Paged Media module.
> - Should there be a section added to the CSS Paged Media spec that
> specifies the UA's default footer/header behavior if there is a
> page-margin box defined using CSS (e.g. disable the UA's footer/header
> by default as soon as there is at least one page-margin box defined in
> the printed document)?
This issue was brought up recently:
http://lists.w3.org/Archives/Public/www-style/2013Feb/0478.html
But not much before, since so far no UA had both "default"
headers/footers like Firefox’s and support for author-defined
page-margin boxes as in css3-page.
One way to unify all this would be to have the default headers be
implemented through a generated stylesheet of user or UA "origin", and
let the cascade resolve conflicts.
PDF.js could disable all page-margin boxes like this:
@page {
@top-left-corner { content: none }
@top-left { content: none }
@top-center { content: none }
@top-right { content: none }
@top-right-corner { content: none }
@bottom-left-corner { content: none }
@bottom-left { content: none }
@bottom-center { content: none }
@bottom-right { content: none }
@bottom-right-corner { content: none }
@left-top { content: none }
@left-middle { content: none }
@left-bottom { content: none }
@right-top { content: none }
@right-middle { content: none }
@right-bottom { content: none }
}
… not very pretty, but well-defined.
However I don’t like the possibility of having both author-defined and
"default" headers end up on the same printed page.
So another option could be, as you say, to completely disable the
default headers and footers in some situation:
a. If at least one page-margin box is generated [1] on the current page.
(I don’t like the inconsistency between pages of the document)
b. … on any page of the same document (costly to implement, you need to
look for "propagated" values of the 'page' property in the box tree.)
c. If any margin at-rule is used in author stylesheets (simpler)
d. With an explicit switch, maybe a new property in the @page context.
(Not very elegant.)
e. Some other condition?
[1] http://dev.w3.org/csswg/css3-page/#generated
What do you think?
--
Simon Sapin
Received on Monday, 4 March 2013 16:02:03 UTC