在没有强制分页符的情况下打印HTML

时间:2017-06-06 21:09:09

标签: html css printing page-break-inside

我正在尝试打印HTML,其中包含许多大块引用元素,每个元素跨越半个页面或更多。打印时,如果blockquote元素无法在当前页面内完成,浏览器会添加分页符。

我在几个浏览器和同样的事情上试过这个。一个人如何编写CSS来显示块引用,即使它们将在当前页面末尾的中间被剪切?

例如:

text-text text-text text-text text-text 
text-text text-text text-text text-text 
<blockquote>
text-text text-text text-text 
text-text text-text text-text 
</blockquote>

浏览器会在“blockquote”元素之前添加分页符,如果其内容无法在当前页面结尾处完成。

如何防止这种情况?

我已经摆弄了CSS属性page-break-before / inside / after但是没有帮助。

1 个答案:

答案 0 :(得分:2)

我相信你想要这些规则中的一个或两个:

blockquote {
  page-break-before: avoid;
  page-break-inside: auto;
}

...或者可能前面的元素需要page-break-after: avoid

(这些属性显然已被更为通用的属性取代,例如break-before,但新版本目前尚未得到广泛支持。)

根据下面的评论,这里显然与display:block有一些互动; display:inline-block不会触发分页行为。