- From: Syntactic: Jim Wilkinson <syntactic@btinternet.com>
- Date: Mon, 22 Nov 2004 15:23:55 -0000
- To: "www-style@w3.org" <www-style@w3.org>
The question arises from time to time on CSS Discuss "Is there a CSS solution which would allow a header and footer to repeat on each printed page?". The usual suggestion is to make use of position:fixed, something like:- @media print { div#printhead { display: block; position: fixed; top: 0; left: 0; width: 100%; height: 2em; } I've researched the proposed solution based on this technique and, in a word, it doesn't work. I think the failure is not (just) in current browsers but in the spec. The method relies on the CSS description of position:fixed, namely "... In the case of the print media type, the box is rendered on every page, and is fixed with respect to the page ..." [Section 9.3.1]. Opera and Gecko-based browsers support position:fixed, so the header appears on every printed page. (IE doesn't support position:fixed at all, so the header appears at the top of the first page only.) For the compliant browsers it's then necessary to shift down the document's main content on every page so that it doesn't overwrite the header. Setting a top margin on <body> (for example) will work only for the first page. I tried to figure out what the CSS2 spec authors had in mind. I concluded that the @page rule may have been intended here [Section 13.2]. Setting an @page top margin creates a page-box margin on every page but unfortunately it shifts down the "fixed" header as well. So I then applied a negative "top" offset to it. Although that had the desired effect, the header, now shifted outside the <body> box, was hidden, even when I specified overflow:visible on <body>. I've made no attempt to implement printed page footers. No one on css-d has come up with a solution. It's my belief that the CSS21 spec is deficient/inconsistent. Although we're talking about a very basic and practical item of functionality here, it may well be decided that CSS21 should not be amended since CSS3 Paged Media appears to address the issue through margin boxes [Section 4]. Can I ask a member of the CSS WG to comment on and acknowledge the issue? -- Jim Wilkinson Cardiff, Wales UK Opera e-mail client: http://www.opera.com/m2/
Received on Monday, 22 November 2004 15:24:36 UTC