有没有一种在打印每页底部时在页面底部添加文本页脚的技术?例如“ Copyright My Company 2010”-我知道可能有一种使用CSS处理背景图片的方法,但是我真的很想在此部分使用文本,以便客户端可以对其进行编辑.有任何想法吗?
解决方法:
CSS没有页面媒体的概念,因此不可能保证分页符将自然发生在哪里.
编辑正如下面指出的那样,CSS 2.1确实引入了@page作为处理分页媒体的一种方式,但是在普通浏览器中它是never implemented.因此,就像我在上面写的那样,它不存在,尽管从技术上讲并非如此.
您可以设置硬分页符,例如通过放置< div class =“ page-break”>在大概的位置.然后,您可以使用page-break-before:始终设置样式,以确保在那里发生中断.
还有一个page-break-after属性.但是您不知道该元素从页面开始到多远.因此,当您需要放置它时,唯一可以使用的是position:absolute; bottom:0,它不会将它固定在页面介质上,而是固定在整个文档的底部.
如果使用page-break-before,则您知道它始终出现在页面顶部.然后,您可以使用position:absolute而不给出顶部或底部,这只会导致将其从文档流中删除.然后,将其设置为720pt(10英寸)的高度意味着您可以将内容放置在底部边缘.
这是我要解决的方法:
/* hide the page footer on screen display */
.page-break { display: none; }
@media print {
/* make a 10-inch high block that sits on top of the page content */
.page-break {
page-break-before: always;
display: block;
position: absolute;
height: 720pt;
}
/* stick the contents of .page-break to the bottom of the 10 inch block */
.page-break .copyright {
position: absolute;
bottom: 0px;
}
}
但是,我不知道浏览器实际上在实际中支持这种情况的程度.我记得前一段时间玩分页符,但最终放弃了,因为我无法让它们足够可靠地工作.我怀疑这仍然是不可能的,或者是非常骇人听闻的和不可靠的.
标签:printing,css,html,javascript
来源: https://codeday.me/bug/20191105/1997148.html