我有一个很大的网页,在打印时经常需要多个分页符。然而,这意味着内容是从父布局结构的其余部分分割出来的,用户可能不明白它涉及到哪个问题。类似下面的例子
当前行为
A 1 i What is the capital of Peru?
ii What is the capital of Brazil?
iii What is the capital of Equador?
2 i What is the population of France?
ii What is the population of Spain?
___________________________________________
iii What is the population of Italy?
我想做的是在页面的开头重复问题的编号,这样孤立的问题就有了父母的参考。
理想行为
A 1 i What is the capital of Peru?
ii What is the capital of Brazil?
iii What is the capital of Equador?
2 i What is the population of France?
ii What is the population of Spain?
___________________________________________
A 2 iii What is the population of Italy?
有没有办法用CSS做到这一点?我不知道如何使用CSS的'分页'属性将工作。否则也许Javascript?我将使用wkhtmltopdf转换html到pdf的方式。
添加了一些示例代码。
一个二个一个一个
2条答案
按热度按时间o7jaxewo1#
下面的代码使用响应网格系统和CSS
page-break-inside
属性。基本上,我们将
page-break-inside
属性的值设置为avoid
,这意味着在同一页上显示整个项目,并且在分页符处不对其进行分隔,这意味着整个项目将显示在同一页上。在您的例子中,我们将整个主组封装到一个div中,并分配
page-break-inside
属性。为了得到一个表格结构,我们将使用CSS网格系统、行和列。现在,这段代码没有复制主q.no,在一个分页上的子q.no,但是它把同一个主q.no的所有问题都放在同一页上。
这段代码也可以通过for循环来实现,以便动态填充页面。
注意
print
CSS类。它被分配到我们正在创建一个新的主问题的行。如果这符合你的目的,我可以帮助你设计for
循环,如果它看起来很复杂...k0pti3hp2#
通过在CSS中使用
page-break-after: avoid;
,你可以告诉网站在打印指定对象时尽可能避免断页。或者,你可以用page-break-after
或page-break-before
设置类,这样打印机就知道什么时候应该把东西推下来或保持在上面。我希望这能有所帮助,这里是我用来参考的文档。W3学校:https://www.w3schools.com/cssref/pr_print_pageba.asp
MDN:https://developer.mozilla.org/en-US/docs/Web/CSS/page-break-after