我正在制作一个可打印的HTML报告,它有一个“部分”应该在新页面中开始。我可以强制在HTML打印中跳转页面吗?
有没有什么办法可以将HTML/CSS中的某些东西发送给浏览器,告诉它它需要跳转到新页面?
我不需要在每个浏览器中工作,我想我可以告诉人们使用一组特定的浏览器来打印它。
感谢
丹尼尔
我正在制作一个可打印的HTML报告,它有一个“部分”应该在新页面中开始。我可以强制在HTML打印中跳转页面吗?
有没有什么办法可以将HTML/CSS中的某些东西发送给浏览器,告诉它它需要跳转到新页面?
我不需要在每个浏览器中工作,我想我可以告诉人们使用一组特定的浏览器来打印它。
感谢
丹尼尔
添加一个名为CSS类 “分页符”(或 “PB”),像这样:
.pagebreak { page-break-before: always; } /* page-break-after works, as well */
然后添加你想要的一个空的DIV标签(or any block element that generates a box)分页符。
<div class="pagebreak"> </div>
它不会显示在页面上,但会打印时打乱页面。
试试这个link
<style>
@media print
{
h1 {page-break-before:always}
}
</style>
我认为这是一个更好的答案,因为它不涉及改变HTML来实现视觉效果。 – FinnNk 2009-11-02 22:17:06
我其实更喜欢另一个,因为它给了我更多的控制权。我总是可以将“pagebreak”类分配给应该使页面跳转的H1。但它仍然是一个很好的解决方案。 @media的+1,尽管屏幕应该忽略page-break-before,我想。谢谢! – 2009-11-02 22:24:47
h1是您可以用作打印中断标记的示例。你可以用你喜欢的名字替换和标记名字。你也可以使用page-break-after:总是 – jfarrell 2009-11-02 23:09:14
您可以使用CSS属性page-break-before
(或page-break-after
)。只需在应该从新行开始的那些块级元素(例如,标题,div
,p
或table
元素)上设置page-break-before: always
。
例如,引起线路中断任何二级标题之前和newpage
类中的任何元素之前(例如,<div class=newpage>
...),你会用
h2, .newpage { page-break-before: always }
@Chris Doggett非常有意义。 虽然我在lvsys.com上发现了一个有趣的技巧,它实际上可以在firefox和chrome上运行。只要将此评论放在任何想要插入分页符的地方即可。您还可以用任何块元素替换<p>
标签。
<p><!-- pagebreak --></p>
这不起作用 – 2016-11-22 23:30:08
但是,像在CSS中一切美好的事物,这并不总是一致的全线工作,所以测试的生活一大跳吧,免得你有愤怒的用户想知道的额外的空白页,为什么你的网站打印桩! – Zoe 2009-11-02 22:17:49
根据MDN的说法,'page-break-after'适用于生成一个框的块元素,因此使用一个空的''元素将不起作用。将它应用于您的内容是一个更好的主意。见https://developer.mozilla.org/en-US/docs/Web/CSS/page-break-after – nullability 2014-01-17 17:46:14
@nullability:好的。我主要在WinForms的WebBrowser控件中使用了这个功能,它使用IE,这是以下标准的黄金标准。 – 2014-01-17 19:25:07