CSS Printing:避免在页面之间分开div?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (18)

我正在编写一个软件的插件,该软件需要大量的项目集合并将它们弹出到Cocoa中的WebView中的HTML中(它使用WebKit作为其渲染器,所以基本上可以假设这个HTML文件正在打开 苹果浏览器)。

它所制作的DIV具有动态高度,但它们变化不大。 他们通常在200px左右。 无论如何,每个文档中大约有六百个这样的项目,我要花很长时间才能打印出来。 除非我运气好,否则每页的底部和顶部都会有一个入口被切碎,这使得实际使用打印输出非常困难。

我已经尝试过page-break-before, page-break-after, page-break-inside,以及三者的组合,但都无济于事。 我认为这可能是WebKit不能正确呈现说明,也可能是我对如何使用它们缺乏理解。 无论如何,我需要帮助。 打印时如何防止我的DIV的分开?

提问于
用户回答回答于

这样做应该可行:

@media print  
{
    div{
        page-break-inside: avoid;
    }
}

请注意当前浏览器支持(12-03-2014):

  • Chrome - 1.0+
  • Firefox (Gecko) - 19.0+
  • Internet Explorer - 8.0+
  • Opera - 7.0+
  • Safari - 1.3+ (312)
用户回答回答于

只有一个部分的解决方案:我唯一能让它在IE上工作的方法是将每个div封装在它自己的表中,并在表中设置页面突破以避免。

扫码关注云+社区