打印 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
不会触发分页行为。
我正在尝试打印 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
不会触发分页行为。