Firefox在打印时在大div块之前添加分页符

use*_*451 10 html css printing firefox ruby-on-rails

我在我的一个Rails视图中有一些逻辑,表明如果table我要打印超过7行,请div在样式周围创建table一个min-height样式,以确保下面的页脚table到达页面2的末尾,而不是第1页.

我在许多浏览器中测试了这个逻辑,包括:Chrome,Safari和IE(!),它们都按预期工作.然而,Firefox正在div和之前添加一个讨厌的分页符table.我曾尝试通过在加入这个CSS样式避免此分页符div并在table:page-break-before: avoid;和这个新的Firefox风格:break-before: avoid;,但似乎并没有影响到印刷在这个分页符.还有其他想法吗?Firefox在打印时会在大div之前自动添加分页符吗?

<div style='min-height: 1150px;'>
    <table>
     blah blah table stuff...
    </table>
</div>
Run Code Online (Sandbox Code Playgroud)

Moh*_*afa 3

好吧,因为我们没有您的代码的实时示例,不幸的是很难找出解决方案,但好消息是我可以提供一些有关它可能有效但不确定的信息。

  1. 始终在每个元素之前插入分页符(打印时)。
  2. 您不能将此属性用于(空div)或与(position:absolute;)一起使用。
  3. 在使用page-break-before之前,检查是否可以使用break-before代替。
  4. 避免在元素之前分页(如果可能),因此不能保证正常工作,这就是为什么我们要求您提供一些使用它的实例。
  5. 尝试使用page-break-before:inherit; 从第二页到第二页,您都是该页面第一部分的一部分。(因此,如果您有一个桌面托盘来知道第一页的最后部分在哪里,请添加page-break-before: escape;break-before:避免;break-before:继承;page-break-before:继承;)。
  6. 如果没有尝试在第二页开始之前使用(column-break-before:avoid;-moz-column-break-before:avoid; )或( column-break-inside:avoid;-moz-column -打破内部:避免;)。
  7. 如果不尝试使用page-break-insidebreak-inside ,则制动器可能位于内部而不是外部。

我希望这能帮助您解决问题,并让我知道哪一个最适合您。如果您有任何疑问,也请告诉我。