2011-02-03 165 views
12

我正在努力为我们的Mediboard项目提供完整的HTML页眉/页脚打印功能。HTML页眉/页脚打印功能

长期以来,我知道CSS3 Page Media模块将满足我的需求,但至少距离两三年。

因此,我试图使它与CSS2功能一起工作,并且它几乎可以正常工作,正如您在此printable document上看到的那样。但是,对于内容打印在页脚下的页脚,我仍然有限制(请参阅打印预览3-4页)。

虽然我敢肯定的div.body的填充,底部使用,使其在Firefox 2

工作总之,是否有人有一个棘手的线索,以帮助我这个问题?

编辑: 为了给出更多的细节,我们目前通过使用定位position: fixed,与top:0bottom:0取决于它是否是报头或脚注的元件具有页眉和页脚。这很好,在打印时,这些元素在每个页面的正确位置重复(请参阅“可打印文档”示例)。唯一的问题是,当一个分页符时,文本是这些元素(参见3/4页)背后拉

EDIT2:更新文档的URL

+0

Fabien,你能告诉我哪些浏览器你有这个工作英寸我只检查谷歌浏览器8.0.552.237和打印预览显示只在最后一页底部的页脚。 – DigiKev 2011-02-08 20:22:51

+0

能否请您描述您的解决方案Fabien,这将是非常感谢!该文档的链接已停用:/ – einarmagnus 2011-12-28 10:46:19

回答

-3

你会想最有可能实现的媒体类型。有关更多信息,请参阅http://www.w3.org/TR/CSS2/media.html。您可以拥有一张CSS页面,该页面没有用于打印的浮动页脚,另一个用于屏幕。

<LINK REL="stylesheet" TYPE="text/css" MEDIA="print, handheld" HREF="foo.css">

这是一个例子。

如果不需要,也可以考虑在页面上隐藏页脚。

1

根据我的经验,分页符在元素中不起作用。如果诸如[p] [/ p]的元素跨越两个打印页面,则HTML代码不知道页面之间发生中断的地方。这是因为用户可能将自己的打印机页边距设置为1或1.75英寸或其他值。实际打印机页边距不能通过CSS设置。 CSS只能将HTML页面的边距和填充设置为“打印机”定义的页边距。没有关于打印机设置的信息(如页边距)被发送到浏览器。这就解释了为什么内容在标题下被保护,因为浏览器不知道页面供稿何时发生。最简单的解决方案只是在第一页上提供标题信息,但这不是你想要的。暴力方法是插入分页符[br style =“page-break-before:always;” /]在适当的地方,但这对大量文件来说是不实际的。此外,包括来自同一制造商的打印机之间的细微差别也会有细微差别 - 例如,一张打印件可能只打印适合一页的内容,即使两台打印机的边距相同,下一台打印机可能在下一页上有最后一行设置。但是,对于表格信息([table] [/ table]),分配这样的CSS变得容易将表保存在一起。我在猜测,可以统计页面上的字符,并通过javascript动态插入分页符(如果使用JQuery,很容易)来逼近暴力方法。

3

有一个很好的答案here涉及表。它确实是你想要的,甚至可以在IE6中工作。

3

它看起来像CSS2有一个@page规则中,你可以定义你的页面大小和边距:

@page { size:8.5in 11in; margin: 6em 1em 2em } 

- 或 -

@page { size:auto; margin: 6em 1em 2em } 

不幸的是我没有时间测试它,但我很想知道它是否有效。我可以使用它。

我喜欢你正在计划的页眉/页脚。良好的工作:)

相关问题