打印 HTML 没有强制分页符

Printing HTML without forced page breaks

我正在尝试打印 HTML,其中包含许多大的 blockquote 元素,每个元素跨越半页或更多。打印时,如果 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" 元素的内容在当前页末尾未完成,浏览器将在 "blockquote" 元素之前添加一个分页符。

如何防止这种情况发生?

我摆弄过 CSS 属性 page-break-before/inside/after 但没有帮助。

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

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

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

(这些属性显然已被 break-before 等更通用的属性所取代,尽管新版本目前并未得到广泛支持。)

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