如何仅使用HTML和CSS为@media打印制作粘性页眉和/或页脚?我尝试过使用position: absolute
和position: fixed
,但都不起作用。
使用position:absolute
和position:fixed
不起作用。这将在第一页或最后一页重复页眉/页脚。您需要做的是:在每页上手动设置页眉和/或页脚,隐藏具有固定高度和溢出的内容,并使用page-break-*
CSS属性使浏览器在页面的开头创建一个新页面。
因此,在浏览器上,它会显示所有不带页眉和页脚的content
,并且在打印时会包括。如果其中一个content
不占据整张纸,它会在footer
之前留下一些空白,如果它太大,它会被隐藏起来。
<body>
<div class="page">
<div class="header">...</div>
<div class="content">...</div>
<div class="footer">...</div>
</div>
<div class="page">...</div>
</body>
在CSS上:
.page .header, .page .footer {
display: none;
}
@media print {
.page {
page-break-before: always;
}
.page .content {
height: 24cm;
overflow: hidden;
}
.page .header, .page .footer {
display: block;
}
}
还要注意,在@media print
上,测量应该以物理单位进行,因此应该使用cm
或in
而不是px
。