打印网页时删除页面标题和日期(使用 CSS?)

IT技术 javascript html css
2021-03-09 13:16:36

默认情况下,当您打印网页时,页面标题URL打印在页面顶部,同样日期时间打印在底部。

当您通过 PAGE SETUP 菜单(在 Internet Exp 中的 FILE 下)打印时,可以删除此附加项

有谁知道通过 CSS 或 javascript 做到这一点的方法吗?

6个回答

从历史上看,让这些东西消失是不可能的,因为它们是用户设置,不被视为您可以控制的页面的一部分。

但是,截至 2017 年,@pageat-rule已标准化,可用于在现代浏览器中隐藏页面标题和日期:

@page { size: auto;  margin: 0mm; }

打印页眉/页脚和打印边距

打印 Web 文档时,在浏览器的页面设置(或打印设置)对话框中设置边距。这些边距设置虽然在浏览器中设置,但在操作系统/打印机驱动程序级别进行控制,在 HTML/CSS/DOM 级别无法控制。(对于 CSS 控制的打印页眉和页脚,请参阅打印页眉。)

设置必须足够大以包含打印机的物理非打印区域。此外,它们必须足够大以包含浏览器通常配置为打印的页眉和页脚(通常是页面标题、页码、URL 和日期)。请注意,这些页眉和页脚虽然由浏览器指定并且通常通过用户首选项进行配置,但它们不是网页本身的一部分,因此不受 CSS 控制。在 CSS 术语中,它们不属于页面框 CSS2.1 第 13.2 节。

... 即将页边距设置为 0 会隐藏页面标题,因为标题打印在页边距中。

感谢Vigneswaranš此提示。

这是一个很好的答案。不需要使用 javascript 的“打印按钮”。如果你想去掉顶部的标题,但在后续没有所需间距的页面时遇到问题,请尝试 @page :first
2021-04-28 13:16:36
这不是最好的解决方案,因为如果您不希望页边距顶部的第一部分(-top)将其推到顶部,它对页脚有好处,但我认为对页眉无效
2021-04-29 13:16:36
似乎有可能……尝试在 Google Docs 中打印……(来自 Chrome)
2021-05-04 13:16:36
只需像使用“打印”按钮一样向网页添加“页面设置”按钮,就可以省去很多麻烦......
2021-05-05 13:16:36

这很简单。只需使用css。

<style>
@page { size: auto;  margin: 0mm; }
</style>
不错的答案+1!查看文档以了解支持。developer.mozilla.org/en-US/docs/Web/CSS/@page
2021-04-20 13:16:36

页面标题的可能解决方法

  • 提供打印按钮,
  • 捕捉 onclick 事件,
  • 使用javascript更改页面标题,
  • 然后也通过javascript执行打印命令。

document.title = "Print page title"; window.print();

这应该适用于每个浏览器。

这是很好的答案
2021-05-12 13:16:36
您还可以使用 window.onbeforeprint 和 onafterprint 在打印事件发生前后对页面进行处理:developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/...
2021-05-12 13:16:36

您可以在样式表中添加它:@page{size:auto; margin:5mm;} 但这也会丢弃页码

完成 Kai Noack 的回答,我会这样做:

var originalTitle = document.title;
document.title = "Print page title";
window.print();
document.title = originalTitle;

这样一旦你打印页面,这将恢复到原来的标题