css - CSS 避免分页的正确方法是什么?

标签 css wkhtmltopdf page-break page-break-inside

我正在尝试使用 wkhtmltopdf 将此页面转换为(有点)漂亮的 PDF 文档:

http://z2codes.franklinlegal.net/franklin/DocViewer.jsp?showset=lubbockset&z2collection=lubbock&docid=405#405

到目前为止,我正在使用以下代码:

a[name^="0"] p, a[name^="1"] p, a[name^="2"] p, a[name^="3"] p, a[name^="4"] p, a[name^="5"] p, a[name^="6"] p, a[name^="7"] p, a[name^="8"] p, a[name^="9"] p {
  display: block;
  page-break-inside: avoid;
}

a[name^="0"], a[name^="1"], a[name^="2"], a[name^="3"], a[name^="4"], a[name^="5"], a[name^="6"], a[name^="7"], a[name^="8"], a[name^="9"] {
  display: block;
  page-break-inside: avoid;
}

h5.Heading4:not(:first-child) {
  page-break-before: always;
}

img {
  visible: hidden;
}

这基本上是正确的,而且我得到的结果比开始时要好。但是分页符仍然不是全部正确。问题树看起来像这样

<a>
    <div>Section Header</div>
    <p>some big paragraph of crappy city ordinances</p>
</a>

现在,我已经掌握了 CSS,它将尽可能避免中断段落(有几个段落超过一页,但其余的都很好)。然而,它仍然偶尔会在页面底部放置一个节标题,然后将段落移动到下一个 —— 如果这样做,它应该也移动节标题,而不是将它们分开。

这是 CSS3 中可以解决的问题吗?

[编辑]

<A NAME="328" />
    <DIV CLASS='Heading7'><span onClick="top.showBookmarkDialog('328');"><img src="http://z2codes.franklinlegal.net/franklin/worldlink.jpg" border="0"> &nbsp;</span>Sec. 17.&nbsp; &nbsp; &nbsp;Improvements of sidewalks and curbs.</DIV>
    <P><Font Face="Times New Roman">Said City shall have the power to provide for the construction, improvement or repair of any sidewalk or curb by penal ordinance and to declare defective sidewalks or curbs public nuisances.</FONT>
    </P>
</A>

这是被要求的,不确定它会有多大帮助。

最佳答案

节标题不在段落内;它在 anchor 里面。在段落中添加 page-break-inside: avoid; 只会防止段落中的内容被拆分。它不适用于该段落的 sibling 。

因此,如果您不希望节标题和段落拆分,则需要将 page-break-inside: avoid; 添加到父级(又名 anchor ),而不是段。

a {
  page-break-inside: avoid;
}

关于css - CSS 避免分页的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31331383/

相关文章:

javascript - 触发剪贴板.js 父级

css - Bootstrap 3 : Reorder stacked columns on mobile screens

django - docker环境中wkhtmltopdf的子进程错误

html - DOMPDF 文本高度有什么问题?

javascript - 如何在打印的 HTML 的每一页顶部放置一个空格

pdf - 是否可以使用 Apps 脚本将分页符添加到 Google 电子表格中?

html - 如何将鼠标悬停在文本(稍后是链接)上并显示其旁边的图像和文本

javascript - 使用 javascript(或 jQuery)选择和操作 CSS 伪元素,例如::before 和::after

css - 如何使用带有目录的 CSS 将 markdown 转换为 PDF?

linux - PDF 在 Chrome 中显示乱码