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

swi*_*ony 58 html javascript css

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

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

有没有人知道通过CSS或JavaScript这样做的方法?

gre*_*eim 93

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

http://css-discuss.incutio.com/wiki/Print_Stylesheets#Print_headers.2Ffooters_and_print_margins

但是,截至2017年,@page规则已经标准化,可用于隐藏现代浏览器中的页面标题和日期:

@page { size: auto;  margin: 0mm; }
Run Code Online (Sandbox Code Playgroud)

感谢Vigneswaran小号为这个技巧.

  • 似乎有可能......尝试在Google文档中打印..(来自Chrome) (2认同)
  • 它不是最好的解决方案,因为如果你不想要页面顶部的第一部分(-top)会将它推到顶部,它对于页脚有好处,但对于我认为不是标题 (2认同)

Vig*_*n S 45

这很简单.只需使用CSS.

<style>
@page { size: auto;  margin: 0mm; }
</style>
Run Code Online (Sandbox Code Playgroud)


Kai*_*ack 16

页面标题的可能解决方法:

  • 提供打印按钮,
  • 抓住onclick事件,
  • 使用javascript更改页面标题,
  • 然后通过javascript执行print命令.

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

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

  • 您还可以使用 window.onbeforeprint 和 onafterprint 在打印事件发生之前和之后对页面执行操作:https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeprint (3认同)

Rom*_*man 8

除了以下来自 的解决方案之外,没有什么对我有用 @Md. Hasibul Huq。您可以在没有样式的情况下使用它body

@media print {
  @page {
    margin-top: 0;
    margin-bottom: 0;
  }
  body  {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }
}
Run Code Online (Sandbox Code Playgroud)


mtc*_*nte 7

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


Luc*_*cke 5

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

var originalTitle = document.title;
document.title = "Print page title";
window.print();
document.title = originalTitle;
Run Code Online (Sandbox Code Playgroud)

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