【问题标题】:IE remove colors for web page when printingIE在打印时删除网页的颜色
【发布时间】:2010-02-09 15:00:38
【问题描述】:

嗨, 我有一个网站,其背景颜色在打印时很重要,但 IE 会从页面中删除所有颜色。 我知道有一些设置可以在 IE 上禁用此选项,但我不能依赖用户进入 IE 设置来禁用 IE 中的此选项。

有什么方法可以从我的网页中禁用此功能,或者以某种方式禁用?

提前致谢。

【问题讨论】:

  • 用户体验规则 1:从服务器端不经意地改变客户端环境是一个很大的禁忌。仅当您想吓唬用户并阻止他们访问您的网站时才这样做。永远不要考虑要求/尝试这样做。在您自己的角落寻找解决方案,即服务器端。

标签: javascript html css internet-explorer printing


【解决方案1】:

您不能在代码中修改浏览器设置(想想安全隐患)。您的用户必须明确允许背景颜色/图像,或者您必须为他们提供要打印的图像。另一种选择是提供使用完全不同样式的打印表,并消除您对背景颜色/图像的依赖。

【讨论】:

    【解决方案2】:

    只是补充乔纳森所说的话:

    <link rel="stylesheet" type="text/css" media="print" href="print.css">

    并定义“print.css”在打印时的外观。

    【讨论】:

      【解决方案3】:

      浏览器的默认设置是打印背景。大多数人 (99.99%) 甚至都不知道他们可以将浏览器设置为打印背景。

      您可以提供 PDF 文件进行打印。此 PDF 可以使用文字处理器或 DTP 应用程序生成。

      【讨论】:

        【解决方案4】:

        您可以使用所选颜色的 1x1 像素图像,而不是使用背景颜色,该图像会缩放以填充您要着色的元素。您可以使用 css 样式来做到这一点:

        .background {
          float: left;
          position: absolute;
          width: 100%;
          height: 100%;
          z-index: -1;
        }
        
        <table>
        <tr>
          <td>Test</td>
          <td>
             <img class="background" src="blue.png">
             Colored element
          </td>
        </tr>
        </table>
        

        【讨论】:

          【解决方案5】:

          您无法更改用户的设置,但如果它真的很重要并且您想投入额外的工作,您可以使用可以打印的图像(至少在 IE 和 FF 中)。您可以创建将内容浮动在纯色图像上的打印样式表。

          我以前必须为页眉和页脚之类的东西这样做,这是一个非常丑陋的 hack,尤其是如果您需要平铺背景时,它可能会令人沮丧,但它确实有效。

          【讨论】:

            猜你喜欢
            • 2010-10-24
            • 2013-06-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-03-02
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多