3

我正在将 HTML 文档呈现为 PDF。以前我使用的是Wkhtmltopdf,但看起来Dompdf为分页符提供了更好的支持,所以我希望我会改用它。

我想对我的文档应用一些孤立控制,所以我需要对orphans实际执行的操作有一个深入的了解。来自 W3C(来源):

orphans 属性指定块容器中必须留在页面底部的最小行数。

网络上一直提供的示例是这样的:

p { orphans: 3; }

这意味着如果三行段落文本没有空间,则强制换行到下一页。我正在渲染一个包含大量无序列表的文档,所以对我来说它将是:

li { orphans: 2; }

但是,理想情况下,我还希望打破无序列表,以使项目符号块本身不会成为孤儿或寡妇。能够做到这一点会很好:

ul { orphans: 2; }

理想情况下,这将确保没有任何项目块可以单独出现在分页符的上方或下方。然而浏览器/渲染器对此的支持是不完整的,并且上面的 W3C 使用“line”这个词而不是“block”。因此,我想上述内容只会影响列表项中的段落行控制,不会影响整个列表项块。如果是这种情况,是否有 CSS 方法可以做到这一点?

4

1 回答 1

1

正如 liZe 在WeasyPrint 问题跟踪器中提到的:

Orphans / Widows 仅适用于行框,不适用于块状框。

幸运的是,您可以定义如下规则:

li:last-child {
  break-before: avoid;
}
li:first-child {
  break-after: avoid;
}
于 2017-09-08T15:32:02.680 回答