css 打印HTML而不强制分页

mzmfm0qo  于 2023-02-01  发布在  其他
关注(0)|答案(1)|浏览(311)

我尝试打印包含大量blockquote元素的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,但没有帮助。

uujelgoq

uujelgoq1#

我相信您需要以下page-break规则中的一个或两个:

blockquote {
  display: block;

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

...或者前面的元素可能需要page-break-after: avoid
(You还可以使用最近引入的属性break-beforebreak-afterbreak-inside--但截至2023年,浏览器对这些属性的支持仍然不完整。)
根据下面的注解,元素必须具有display: block才能正常工作;display: inline-block不会触发分页符行为。

相关问题