Html 如何使用css打印背景图像?

Html 如何使用css打印背景图像?,html,css,printing,image,Html,Css,Printing,Image,我正在使用在我的网站上创建CSS精灵 它正在工作,但打印时不会显示它生成的图像 在HTML级别生成的代码是: <a href="/" id="siteLogo"><img class="getmecooking-logo-png" src="data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /></a> css工作正常,它正在格式化页面,就像

我正在使用在我的网站上创建CSS精灵

它正在工作,但打印时不会显示它生成的图像

在HTML级别生成的代码是:

<a href="/" id="siteLogo"><img class="getmecooking-logo-png" src="data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /></a>
css工作正常,它正在格式化页面,就像我希望页面上的其他元素那样。我唯一的问题是打印时无法显示站点徽标图像。

setmedia=“print”



打印或不打印背景图像取决于用户及其浏览器设置。为了避免依赖于此,请将图像直接放入带有实际标记的HTML中

如果您使用Internet Explorer,您可以这样做:

  • 进入“工具”菜单
  • 点击“互联网选项”
  • 单击“高级”选项卡
  • 检查打印背景颜色和图像

您可以有一个自己的媒体查询,用于打印和使用:带有属性“content”的before选择器

将其放入介质查询,当您尝试打印时,它将插入图像:

p:before { content: url(images/quote.gif); }

对于Chrome和Safari,您可以在CSS中添加以下内容:

@media print
{
    * {-webkit-print-color-adjust:exact;}
}

不幸的是,对于其他web浏览器,由用户手动选择打印背景图像的选项(例如,对于使用IE 9、10和11的用户,他们必须单击cog图标->打印->页面设置,然后激活该选项)

您的主文档将导入两个样式表,一个用于屏幕,另一个用于打印机。您可以根据需要微调媒体设置

<!DOCTYPE html>
以及用户启动打印对话框时浏览器使用的打印技巧。因此,您可以将print类添加到div并将其打印出来,或者根据需要将其删除

.bg.print {
display: list-item;
list-style-image: url("http://fpoimg.com/250x250");
list-style-position: inside;
}
注意:如果希望避免发出额外的http请求,也可以使用@media规则而不是导入文件

参考来源:


你好,世界。
这有助于理解您发布的CSS,也可以查看此网站:

尝试以下内容:

@media print {
    body:before {
        content:url(http://192.168.0.11:8088/automation/img/mahyaA5.jpg);
        position: absolute;
        z-index: -1;
      }
}

当您通过直接使用java脚本创建打印格式来尝试自定义打印时,如果有标记,则不会打印,因为浏览器会向打印机发送请求,而无需等待在缓存中加载图像。 所以,好的做法是添加要在html页面上打印的图像,并使其可见性为false。

当您添加!背景图像的重要属性。请确保先添加属性,然后重试,您可以这样做:

.class-name {
background: url('your-image.png') !important;
}
您还可以使用这些有用的打印规则,并将它们放在css文件的末尾:

@media print {
* {
    -webkit-print-color-adjust: exact !important; /*Chrome, Safari */
    color-adjust: exact !important;  /*Firefox*/
  }
}

对不起,我应该解释一下。css工作正常,它正在格式化页面,就像我希望页面上的其他元素那样。我唯一的问题是打印时无法显示站点徽标图像。为什么否决??OP没有明确的问题..请参阅评论您不能。这是一个浏览器设置,如下所述,你不能依赖它,所以你应该使用img标签。无论如何,使用图像标签(照片、徽标等)和css背景图像(重复模式等)是一种很好的做法。我之所以要这样做,是为了自动化css精灵的生成和使用。我可能只需要为徽标使用一个独立的图像。@Johann在下面发布了一个可行的解决方案,您应该真的接受它。@Talon没有,因为他说“对于Chrome和Safari,您可以在CSS中添加以下内容…”。。。不幸的是,对于其他web浏览器来说,这取决于用户手动选择打印背景图像的选项。单独的链接被认为是一个糟糕的答案(请参阅),因为它本身毫无意义,而且目标资源也不能保证在将来仍然存在。在这里包括答案的基本部分,并提供链接供参考。请添加实际的asnwerI不敢相信这还没有被标记为solution@ScottWe首先,它是非标准的——IE或Firefox没有相应的浏览器。chrome现在是blink而不是WebKitt。这应该被标记为解决方案。(仅供参考,Bootstrap 3的朋友们,这还不够,因为BS3做出了一个固执己见的决定,即设置背景透明!重要。这在BS4中得到了修复)谢谢你,伙计,这正是我所期待的,它起作用了,但是,我怎么能让图像重复?我找不到复选框。
.bg.print {
display: list-item;
list-style-image: url("http://fpoimg.com/250x250");
list-style-position: inside;
}
<div style="position: relative;">
    <img src="/images/blue.png" style="width: 100px; height: 100px;">
    <div style="position: absolute; top: 0px; left: 0px;">
        Hello, world.
    </div>
</div>
@media print {
    body:before {
        content:url(http://192.168.0.11:8088/automation/img/mahyaA5.jpg);
        position: absolute;
        z-index: -1;
      }
}
.class-name {
background: url('your-image.png') !important;
}
@media print {
* {
    -webkit-print-color-adjust: exact !important; /*Chrome, Safari */
    color-adjust: exact !important;  /*Firefox*/
  }
}