【问题标题】:page breaks and css - how to skip last page?分页符和 css - 如何跳过最后一页?
【发布时间】:2013-12-11 07:39:37
【问题描述】:

我遇到了分页符和 css 的问题

我有这个 html 代码(由 php 生成)

<div class="form-table courses">
coursename and pupils...
</div>
<div class="form-table courses">
coursename and pupils...
</div>
<div class="form-table courses">
coursename and pupils...
</div>

我的 CSS 是这样的:

.form-table.courses {page-break-after:always;}

上面将生成 4 个页面,因为它甚至在上面的第三个 div 之后设置了分页符。 有没有什么“简单”的方法可以只获得 3 页?

我在考虑 css 的 last-child 属性,但据我所知,IE8 及以下版本不支持此功能 - 这还不够好(它必须至少处理 ie8 - 最好也处理 ie7)。

当然,我可以为最后一个 div 添加一个类,然后像这样修改 css:

<div class="form-table courses">
coursename and pupils...
</div>
<div class="form-table courses">
coursename and pupils...
</div>
<div class="form-table courses lastpage">
coursename and pupils...
</div>

并将这一行添加到我的 css 中:

.form-table.courses.lastpage {page-break-after:"";}

我的解决方案是唯一具有某种跨浏览器兼容性的解决方案吗?还是我错过了一些我应该使用的 css 属性/值?

【问题讨论】:

标签: html css page-break


【解决方案1】:

另一种更具可读性的方式是

.page-break {
    page-break-after: always;
}

.page-break:last-child {
    page-break-after: avoid;
}

这将在除最后一个之外的所有 div 之后中断

<div id="container">
<div class="form-table page-break">
 <!-- First Child -->
 coursename and pupils...
</div>
<div class="form-table page-break">
 <!-- Second Child -->
 coursename and pupils...
</div>
<div class="form-table page-break">
 <!-- Third Child -->
 coursename and pupils...
</div>
<div class="form-table page-break">
 <!-- Last Child -->
 coursename and pupils...
</div>
</div>

【讨论】:

    【解决方案2】:

    first-child 支持到 IE7,所以我会执行以下操作:

    .courses {
        page-break-before: always;
    }
    
    .courses:first-child {
        page-break-before: avoid;
    }
    

    希望对你有帮助。

    【讨论】:

    • 感谢您的回答!看路人的评论就想到了这个,但是chrome、firefox或者safari好像都不支持avoid属性……所以还是在开头加了一个空页。
    • 奇怪...也许可以试试你在帖子中提到的方法page-break-before: ''; 这样可以解决问题吗?或者试试inherit
    • 不原谅我。我似乎完全错了(避免属性起作用)。这似乎是我的 div 没有关闭或类似的东西,因为它在其他页面上工作:-) 非常感谢!!!
    猜你喜欢
    • 1970-01-01
    • 2017-06-27
    • 2021-06-06
    • 2015-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-24
    相关资源
    最近更新 更多