【问题标题】:Browser print preview not showing CSS backgrounds浏览器打印预览不显示 CSS 背景
【发布时间】:2012-10-04 07:28:21
【问题描述】:

我的网站运行良好,但是当我点击 File > 在浏览器上打印(其浏览器打印预览)时,所有的 CSS 都被弄乱了,背景颜色被替换为空白,并且在预览时没有获得徽标页。

那么我如何为打印预览创建一个 CSS 文件,以及当用户点击打印时我如何调用。

【问题讨论】:

  • 白色背景是因为许多浏览器默认覆盖background: 属性以避免用户在背景颜色和图稿上浪费墨水/墨粉。在浏览器的选项区域中,您会找到一种禁用此功能的方法。但是,您不能假设您的打印样式表 (@media) 会覆盖浏览器的设置。
  • 只需按 Ctrl + F5 几次,看看会发生什么。如果刷新后代码仍然存在,则说明代码存在问题
  • 目前我正在使用 mozilla 但我已经检查了所有浏览器@GhostAnswer

标签: css browser printing


【解决方案1】:

您需要为您遇到此错误的原因提供您的标记..

信息:浏览器默认从不打印background color,您需要在浏览器中启用该选项..

以防万一你正在使用

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

将其替换为 media=screen, print 以便它将规则应用于您的网站以及打印..

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

您也可以像这样使用打印特定样式表:

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

您还可以使用打印特定的@media 查询

@media print {
 /* Whatever */
}

最后但并非最不重要的一点是在浏览器中启用打印:

Firefox:点击alt(如果您的浏览器菜单栏被隐藏)-文件-页面设置-勾选打印背景

Chrome : 要在 chrome 中启用打印,请使用此 CSS 属性 -webkit-print-color-adjust:exact;

【讨论】:

    【解决方案2】:

    为打印创建样式表

    <!-- Main stylesheet on top -->
    <link rel="stylesheet" type="text/css" href="/global.css" mce_href="/global.css" href="/global.css" mce_href="/global.css" media="all" />
    <!-- Print only, on bottom -->
    <link rel="stylesheet" type="text/css" href="/print.css" mce_href="/print.css" href="/print.css" mce_href="/print.css" media="print" />
    

    不要在打印版本中显示不必要的元素

    网络访问者打印您的页面是因为其中的内容,而不是查看您网站上的支持图像。创建一个名为 no-print 的类,并将该类声明添加到 DIVS、图像和其他没有打印值的元素:

    .no-print { 
       display:none; 
    }
    

    <!-- Example -->
    <div id="navigation" class="no-print">
       <!-- who needs navigation when you're looking at a printed piece? -->
    </div>
    

    提示

    • 避免不必要的 HTML 表格
      当页面结构被困在表格中时,控制网站的内容区域可能极具挑战性。
    • 使用分页符 浏览器中的分页符不如 Microsoft Word 中的可靠,尤其是考虑到动态创建的页面上的可变内容长度,但如果使用得当,打印您的网站会完全不同。
    • 打印页面大小 显然你的电脑显示器可以提供很大的宽度来查看页面,但我建议将内容区域宽度设置为 600px。

    作者David Walsh

    【讨论】:

      【解决方案3】:

      Mr. Alien already answered为什么你没有得到任何背景颜色(这也适用于你的背景标志)。但是,您说您的“CSS 混乱”。

      对于 HTML 页面,请牢记一件简单的事情:不要打印它们。至少不是你通常的、大量基于图形的页面。如果您想打印路线,您是否注意到 Google 如何提供特殊版本的地图?几乎所有其他提供搜索结果或路线的页面也将为您提供特殊的打印功能。甚至维基百科也有每篇文章的可打印版本。这些提供了一个非常简单的布局,没有页面导航和背景图像等不必要的细节。

      这是什么原因? CSS in print media is a huge mess。坚持非常基本的布局,提供最必要的信息,不要过多分散注意力的图形。如果您确实需要提供网站的可打印版本,请准备 PDF。其他一切都只是自虐。

      【讨论】:

        【解决方案4】:

        试试这个,希望对你有帮助

        在 mozilla 浏览器中,单击文件页面设置-格式和选项选项卡 检查打印背景选项,然后确定。

        现在检查打印

        【讨论】:

          【解决方案5】:

          先生。外星人的回答是正确的,我同意这一点。 我想为此添加一些图片。

          在 chrome 中,打印预览有 2 个设置,

          我们需要根据自己的选择启用。

          其次,如果您需要所有的 css 样式都出现在打印中,

          通过将媒体指定为屏幕,打印您将在监视器和打印媒体中发现相同的页面外观。

          如果您想在打印过程中省略某些样式,请创建一个单独的 css 文件进行打印,并将其作为链接包含在页面中。媒体打印属性的css属性只会被挑选出来打印。

          【讨论】:

            猜你喜欢
            • 2017-02-13
            • 2013-02-05
            • 2018-05-29
            • 2015-10-21
            • 1970-01-01
            • 2017-08-16
            • 2013-03-11
            • 1970-01-01
            • 2016-02-28
            相关资源
            最近更新 更多