Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 是否应;“孤儿”;在线路或区块层面上操作?_Html_Css_Css Paged Media - Fatal编程技术网

Html 是否应;“孤儿”;在线路或区块层面上操作?

Html 是否应;“孤儿”;在线路或区块层面上操作?,html,css,css-paged-media,Html,Css,Css Paged Media,我正在将HTML文档呈现为PDF。以前我使用过,但它似乎为分页符提供了更好的支持,所以我希望我会改用它 我想对我的文档应用一些孤立控件,因此我需要对孤立控件的实际功能有一个深入的了解。来自W3C(): Olivers属性指定块容器中必须保留在页面底部的最小行数 web上始终提供的示例如下: p { orphans: 3; } 这意味着,如果没有足够的空间容纳三行段落文本,则将强制在下一页进行换行。我正在呈现一个包含大量无序列表的文档,因此对我来说: li { orphans: 2; } 然而

我正在将HTML文档呈现为PDF。以前我使用过,但它似乎为分页符提供了更好的支持,所以我希望我会改用它

我想对我的文档应用一些孤立控件,因此我需要对
孤立控件的实际功能有一个深入的了解。来自W3C():

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

web上始终提供的示例如下:

p { orphans: 3; }
这意味着,如果没有足够的空间容纳三行段落文本,则将强制在下一页进行换行。我正在呈现一个包含大量无序列表的文档,因此对我来说:

li { orphans: 2; }
然而,我也希望打破一个无序的列表,这样一个项目符号块就不会单独成为孤儿或寡妇。如果能够做到这一点,那就太好了:

ul { orphans: 2; }

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

正如liZe在:

孤立/孤立仅适用于线框,而不适用于类似块的框

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

li:last-child {
  break-before: avoid;
}
li:first-child {
  break-after: avoid;
}

您的意思是,如果一个页面上只适合一个
li
元素(无论内容中有多少行),您会希望在
li
元素之前进行分页符吗?如果没有,那怎么办?在任何情况下,
孤立项
属性始终与行相关。感谢您确认
孤立项
应该做什么。确实是这样:如果有四个
li
项目,并且在一页的末尾有三个项目的空间,那么分界符应该在第二个和第三个之间。在这里,我们的属性值为2(即最小块数)。这个问题对我来说并不重要,但我认为有兴趣进行全面的探讨。我想知道它是否需要JavaScript来实现(在Prince和wkhtmltopdf中可能实现,但在dompdf中不可能)。