我想打印30页,其中一些数据位于顶部,一些数据位于底部。 我的代码如下:
<...>
<div style="page-break-after: always">
<div>This should be on top1</div>
<div>This should be on bottom1</div>
</div>
<div style="page-break-after: always">
<div>This should be on top2</div>
<div>This should be on bottom2</div>
</div>
<etc>
我尝试了一切:
也许有办法强制我的浏览器(FF)坚持div到底部的页面?
答案 0 :(得分:14)
终于找到了答案:
瞧!
这是我的完整代码:
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<style>
html,body
{
height: 100%;
margin: 0px;
}
body > div
{
height: 100%;
display: block;
position: relative;
}
body > div > div
{
position: absolute;
bottom: 0px;
left: 0px;
}
</style>
</head>
<body>
<div>
Page1
<div>Page1Footer</div>
</div>
<div>
Page2
<div>Page2Footer</div>
</div>
<div>
Page3
<div>Page3Footer</div>
</div>
</body>
</html>
答案 1 :(得分:5)
<强>更新强>
我用上面的代码玩了一下,这可能比我最初的想法更容易。 (注意,页脚可能会重叠前一个div的内容,这可以通过向内容div添加margin-bottom
属性来解决,该内容div等于自定义页脚设置的高度 - 另外,如果您的页面内容也是如此在分页符之间很长时间,这仍然会有一些需要参加的场景)。总而言之,我在当地进行了测试,并且按照您的意愿工作。
<强> CSS 强>
<style>
@media print{
.footer{
position:relative;
top:-20px; // this sets the footer -20px from the top of the next
//header/page ... 20px above the bottom of target page
//so make sure it is more negative than your footer's height.
height:10px;//notice that the top position subtracts
//more than the assigned height of the footer
}
}
</style>
<强> HTML 强>
<body>
<div style="page-break-after: always">
<div>This should be on top1</div>
</div>
<div style="page-break-after: always">
<div class="footer">This should be on bottom of page1</div>
<div>This should be on top2</div>
</div>
<div class="footer">This should be on bottom of page2</div>
</body>
<小时/> 原始答案
不幸的是,没有简单的方法可以做到这一点。浏览器不提供创建自定义页眉和页脚的方法。
您最好的选择是将您想要的信息放在<head><title>YOUR COMMON CONTENT</title></head>
中找到的标题标签中的每一页上。它不会是最漂亮的。这取决于您的要求。
另一种选择是使用@media print(CSS)和javascript来动态计算和插入空白分页符/间隙,同时在已知纸张大小的绝对位置插入div(您的自定义页脚和/或页眉) 。然后在打印事件后动态更改格式。
答案 2 :(得分:2)
这对我有用
只需在html文件中添加以下css
即可@page {
margin-bottom: 40px;
counter-increment: page;
@bottom-right {
border-top: 1px solid #000000;
padding-right:20px;
font-size: 12px !important;
content: "Page " counter(page) " of " counter(pages);
}
@bottom-left {
content: "Footer content goes here.";
border-top: 1px solid #000000;
}
}
答案 3 :(得分:0)
如果您使用页眉和页脚的和元素
thead {display: table-header-group; }
tfoot {display: table-footer-group; }
来源:http://www.codeproject.com/Questions/247645/Print-html-table-into-A4-size