为什么要这么做?
大多数人都知道如何打印网页,因此在网站上包含“打印此页面”按钮通常是多此一举。但有些情况下确实很有意义。我最近在为客户做的一些工作中遇到了其中一种情况,因此我想分享一下。
该网站有一个“儿童区域”,其中包含大量游戏和供孩子们娱乐的有趣内容,包括一些**涂色页**。这些涂色页是黑白轮廓图像,旨在供孩子们在家用打印机上打印出来。然后他们可以拿出蜡笔,尽情发挥=)。我想尽可能简单地让孩子们打印涂色页。起初,似乎将它们制作成 PDF 会是一个不错的解决方案,因为我可以完全控制页面并获得确定的结果。但我想得越多,就越觉得这对于孩子们来说不是一个友好的解决方案。孩子们必须下载它们,然后知道他们必须在电脑上找到它们,并在 PDF 阅读器程序中打开它们,然后从那里打印出来。我相信有很多神童对此毫无问题,但如果可能的话,我想让它变得更容易。
我决定为每个涂色页制作简单的网页。每个页面仅包含两个图像:彩色页面图像本身和顶部的一个大“打印此页面”按钮。诀窍是,在“打印此页面”按钮上使用唯一的 ID,为页面声明打印样式表,并将 display 设置为 none。
在你的 head 部分
<link rel="stylesheet" href="../../stylesheets/coloringpage.css" type="text/css" media="screen, projection" />
<link rel="stylesheet" href="../../stylesheets/coloringpageprint.css" type="text/css" media="print" />
按钮
<a href="javascript:window.print()"><img src="../../images/click-here-to-print.jpg" alt="print this page" id="print-button" /></a>
涂色页图像
<img src="../../images/coloring-page-1.gif" alt="Coloring Page 1" width="1094" height="1275" />
CSS
#print-button {
display: none;
}
按钮图像
要点
- 使页面打印尽可能简单。使用打印样式表来帮助实现。
- 不要打印“打印此页面”按钮本身。
- 只需要简单的 JavaScript 即可触发打印对话框。
- 在不同的浏览器中测试打印结果。它与屏幕显示一样,也存在差异。
我发现,尤其是在打印像我这样的一张大图像时,不同浏览器之间的结果差异很大。有些浏览器无论如何都会将图像强制到一页上,有些浏览器则可以轻松地将其分割,而打印页面上的实际大小始终是一个通配符。经过一番测试,我发现将宽度和高度强制为 1094×1275 对我来说似乎有效。这使得它在页面上尽可能大,而不会在任何浏览器上分割到两页。您的里程数可能会有所不同,这只是对我有用的方法。
我了解打印方面的内容 - 但我从未知道您可以像您在以下示例中显示的那样,将多个媒体类型分配给单个 CSS 文件:
media=”screen, projection”
感谢您撰写另一篇精彩的文章!
愚蠢的问题:什么是投影?
@Jermayn:从字面上讲,它的意思就是你认为的意思。它是一种投影仪将用于网站样式的样式表。正如你可能想象的那样,真正需要你担心的网络浏览投影仪并不多。我认为你看到它的原因是 Opera。Opera 具有全屏模式,我认为它将触发投影样式表,因此你可以专门为此场景设置样式。
我必须承认:由于以下几个原因,我从未成为“打印此页面”功能的拥护者
1. 这不是内容,而是一个功能。这类事情应该是浏览器的领域,而不是网站的领域,因为用户希望学习一次如何打印页面,而不是在每个网站上再次检查打印图标/链接可能位于何处。
2. 现代浏览器提供页面预览,可以帮助你节省纸张。内容要么调整大小以适合一页(或任何所需的页数),要么你只能打印第一页,如果你看到后续页面上没有重要的内容。
3. 如果禁用 JavaScript,则必须确保“打印我”链接不会显示。否则,用户将拥有一个无法使用的链接。解决此问题的最佳方法可能是使用 JavaScript 编写链接,因此如果将其关闭,则根本不会显示任何链接。对于并非真正必要的函数来说,这需要花费大量的工作。
在我看来,一种可接受的方法是切换到打印样式表(显示打印版本),以便用户看到将要打印的内容以及打印布局的外观,或者也可以选择此选项以获得该页面的简洁(无广告)设计。
但了解其他人对此的看法很有趣。
我认为在这种情况下,“打印此页面”按钮效果很好 - 正如 Chris 所说,它用于儿童区域的涂色部分。它让孩子们(他们可能才刚开始使用电脑)知道他们可以打印页面。它还表明设计师考虑了打印样式,以确保它适合 A4 页面。尽管我同意,在大多数情况下,打印应该留给浏览器 - 网站只需提供打印样式表即可。
感谢您的分享,简洁明了! :)
打印按钮可以用于 iframe。我将冗长的条款和条件放在一个较小的 iframe 中,并希望让用户可以选择打印 iframe 内容而不是父页面
这篇文章发表 7 年后,当我阅读有关为孩子们简化与计算机相关的事情时,我忍不住笑了 :-) 你可以稍微修改一下这篇文章,然后重新发布,并将目标用户群定位为仍然在学习如何使用电脑的老年人!