我有一个很大的HTML文档,有标题(h1,h2,h3...)和段落。当我打印文档时,我希望文档底部的标题自动转到下一页:
我该怎么办?我用“孤儿”:3“CSS与段落和作品与“p”标签,但与h1或h2不工作。
@page {
size: A4;
}
p {
orphans:3;
}
h1, h2 {
orphans:3
}
- 1-2页:段落孤儿工程罚款。
- 2-3页:标题不起作用。
要求:
- HTML有一个主要的div容器。
*不要修改HTML。 - 浏览器支持并不重要(在我的特定工作中)。
- 我需要一些技巧在CSS(没有JS或JQuery,最好)
- 我不能使用page-break-before:always,因为我希望当页眉出现在页面底部时,它只会转到下一页。
2条答案
按热度按时间c7rzv4ha1#
在印刷术中,孤儿是:
在一页或一栏的底部单独出现的一段开始行,因此与正文的其余部分分开。
然而在HTML中
<h1>
和<p>
是不同的 * 段落 *,那么你必须使用的是break-after
属性来告诉布局引擎不要在该段落之后放置分页符(副作用是将下一段移动到上一页-如果合适-或者将标题移动到下一页。关于兼容性的说明:
break-after
设置是一个真正的工作草案,甚至基本的功能都没有得到广泛支持(特别是Internet Explorer 10做)。要解决此问题,您可以使用另一个具有类似含义的属性:请注意,
page-break-after
适用于页和列。FF(it is a bug)不太支持page-break-after
,如果兼容性很重要,段落不会跨越多个页面,您可以将<h1>
和<p>
Package 在容器中(假设为<section>
),然后像这样应用page-break-inside
:在我看来,你应该使用
page-break-inside
和-moz
前缀来组合page-break-after
和page-break-inside
,直到它修复这个bug。bpsygsoo2#
这个问题是这个老问题的重复:How do I avoid a page break immediately after a heading
最好的解决方案是这样的代码: