Skip to main content

如何优化网页的打印样式?

可以准备 2 套样式,一套正常的 css 网页展示的样式,另一套专门给打印的时候用的 css 样式,只要用户打印,就会通过媒体查询自动用打印的专门样式 print[prɪnt]。这样既可以在浏览器很好展示效果,也不影响具体打印出来的效果。

指定媒体的两种方法:

指定 Media 属性(外部样式)

//正常浏览器用的样式
<link rel="stylesheet" type="text/css" media="screen" href="/css/styles.css" />

//专门打印用的样式
<link rel="stylesheet" type="text/css" media="print" href="/css/print.css" />

@media 或@import(内部样式)

<style type="text/css">
/* 正常浏览器用的样式 */
@import url("screenstyles.css") screen;

/* 打印时使用的样式放置在此 */
@media print {
body {
margin: 0; padding: 20px;
}
}
</style>

通过为 styles.css 指定 screen,就能确保 styles.css 包含的样式只会对电脑屏幕使用,同样的,把 media 属性设为 print 就能确保 print.css 包含的样式只在使用者打印页面时使用。

注意事项

  • 打印机样式表中最好不要用背景图片,因为打印机不能打印 CSS 中的背景。如要显示图片,请使用 html 插入到页面中。
  • 最好不要使用像素作为单位,因为打印样式表要打印出来的会是实物,所以建议使用 pt 和 cm。
  • 隐藏掉不必要的内容。(@print div{display:none;})
  • 打印样式表中最好少用浮动属性,因为他们会消失。