【发布时间】:2010-04-04 04:56:07
【问题描述】:
默认情况下,打印网页时,页面title和URL会打印在页面顶部,date 和 time 打印在底部。
当您通过 PAGE SETUP 菜单(在 Internet Exp 中的 FILE 下)进行打印时,可以删除此附加项
有谁知道通过 CSS 或 javascript 执行此操作的方法吗?
【问题讨论】:
标签: javascript html css
默认情况下,打印网页时,页面title和URL会打印在页面顶部,date 和 time 打印在底部。
当您通过 PAGE SETUP 菜单(在 Internet Exp 中的 FILE 下)进行打印时,可以删除此附加项
有谁知道通过 CSS 或 javascript 执行此操作的方法吗?
【问题讨论】:
标签: javascript html css
从历史上看,不可能让这些东西消失,因为它们是用户设置,不被视为您可以控制的页面的一部分。
不过,截至 2017 年,@page at-rule 已标准化,可用于在现代浏览器中隐藏页面标题和日期:
@page { size: auto; margin: 0mm; }
Print headers/footers and print margins
打印 Web 文档时,边距在浏览器的页面设置(或打印设置)对话框中设置。这些边距设置虽然在浏览器中设置,但在操作系统/打印机驱动程序级别控制,在 HTML/CSS/DOM 级别无法控制。 (对于 CSS 控制的打印页眉和页脚,请参阅打印页眉。)
设置必须足够大,以涵盖打印机的物理非打印区域。此外,它们必须足够大以包含浏览器通常配置为打印的页眉和页脚(通常是页面标题、页码、URL 和日期)。请注意,这些页眉和页脚虽然由浏览器指定并且通常可以通过用户首选项进行配置,但它们并不是网页本身的一部分,因此无法由 CSS 控制。在 CSS 术语中,它们不属于页面框 CSS2.1 第 13.2 节。
... 即设置边距为 0 会隐藏页面标题,因为标题打印在边距中。
感谢Vigneswaran S 获得此提示。
【讨论】:
很简单。只需使用 css。
<style>
@page { size: auto; margin: 0mm; }
</style>
【讨论】:
页面标题的可能解决方法:
document.title = "Print page title"; window.print();
这应该适用于所有浏览器。
【讨论】:
您可以在样式表中添加:@page{size:auto; margin:5mm;}
但这也丢弃了页码
【讨论】:
完成 Kai Noack 的回答,我会这样做:
var originalTitle = document.title;
document.title = "Print page title";
window.print();
document.title = originalTitle;
这样,一旦您打印页面,这将返回到其原始标题。
【讨论】:
除了@Md. Hasibul Huq 的以下解决方案外,没有什么对我有用。 body 可以不带样式使用:
@media print {
@page {
margin-top: 0;
margin-bottom: 0;
}
body {
padding-top: 5rem;
padding-bottom: 5rem;
}
}
【讨论】:
试试这个;
@media print{
@page {
margin-top: 30px;
margin-bottom: 30px;
}
}
【讨论】:
有一个单独的样式表用于打印,使用
<link type="text/css" rel="stylesheet" media="print" href="print.css">
我不知道它是否符合您的要求。
【讨论】: