Ich verwende das ASP Net Sprites-Paket , um CSS-Sprites auf meiner Website zu erstellen.
Es funktioniert, aber die Bilder, die es erzeugt, werden beim Drucken nicht angezeigt.
Der auf HTML-Ebene generierte Code lautet:
<a href="/" id="siteLogo"><img class="getmecooking-logo-png" src="data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /></a>
Wie kann ich das Logo anzeigen, wenn ein Benutzer die Seite druckt?
Ich habe versucht, dies in mein print.css-Stylesheet einzufügen, aber es hat nicht funktioniert:
#siteLogo
{
visibility: visible;
}
Die print.css funktioniert einwandfrei und formatiert die Seite so, wie ich sie für andere Elemente auf der Seite möchte. Mein einziges Problem ist, dass das Logo des Site-Logos nicht angezeigt werden kann, wenn es gedruckt wird.
Es ist Sache des Benutzers und seiner Browsereinstellungen, Hintergrundbilder zu drucken oder nicht. Damit Sie sich nicht darauf verlassen können, fügen Sie die Bilder direkt mit einem <img />
-Tag in den HTML-Code ein.
Für Chrome und Safari können Sie Folgendes in Ihr CSS einfügen:
@media print
{
* {-webkit-print-color-adjust:exact;}
}
Bei anderen Webbrowsern muss der Benutzer leider manuell die Option zum Drucken von Hintergrundbildern auswählen (z. B. für Benutzer mit IE 9, 10 und 11 müssen sie auf das Zahnradsymbol klicken -> Drucken -> Seite einrichten.) und aktivieren Sie die Option)
Sie könnten eine eigene Medienabfrage zum Ausdrucken haben und verwenden: vor dem Selektor mit dem Attribut "Inhalt".
Fügen Sie dies in die Medienabfrage ein und das Bild wird eingefügt, wenn Sie versuchen, zu drucken:
p:before { content: url(images/quote.gif); }
Es funktioniert in Google Chrome, wenn Sie dem Hintergrundbild das wichtige Attribut hinzufügen. Stellen Sie sicher, dass Sie das Attribut zuerst hinzufügen und es dann erneut versuchen. Sie können dies folgendermaßen tun:
.class-name {
background: url('your-image.png') !important;
}
Sie können auch diese nützlichen Druckregeln verwenden und am Ende der CSS-Datei einfügen:
@media print {
* {
-webkit-print-color-adjust: exact !important; /*Chrome, Safari */
color-adjust: exact !important; /*Firefox*/
}
}
Ihr Hauptdokument importiert 2 Stylesheets, 1 für den Bildschirm und eines für den Drucker. Sie können die Medieneinstellungen nach Bedarf anpassen.
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="screen.css" media="screen, print" />
<link rel="stylesheet" type="text/css" href="print.css" media="print" />
</head>
<body>
<div class="bg print"></div>
</body>
</html>
Hier ist das Hintergrundbild, das in Ihrer in Browsern verwendeten css-Hauptdatei aufgerufen wird.
.bg {
background: url("http://fpoimg.com/250x250") top left no-repeat;
width:250px;
height: 250px;
}
Ihr Druck-Hack, der von Browsern verwendet wird, wenn Benutzer den Druckdialog starten. So können Sie die Druckklasse zu Ihrem div hinzufügen und ausdrucken oder bei Bedarf entfernen.
.bg.print {
display: list-item;
list-style-image: url("http://fpoimg.com/250x250");
list-style-position: inside;
}
Hinweis: Sie können auch die @ media-Regel verwenden, anstatt Dateien zu importieren, wenn Sie vermeiden möchten, eine zusätzliche http-Anfrage zu erstellen.
referenz aus: http://www.seifi.org/css/how-to-force-css-background-images-to-print-in-web-browsers.html
Versuche dies:
@media print {
body:before {
content:url(http://192.168.0.11:8088/automation/img/mahyaA5.jpg);
position: absolute;
z-index: -1;
}
}
Wenn Sie den Internet Explorer verwenden, gehen Sie folgendermaßen vor:
<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>
Dies macht Sinn für das von Ihnen gepostete CSS, siehe auch diese Website: https://defuse.ca/force-print-background.htm
set media = "print"
<LINK REL="stylesheet" TYPE="text/css" MEDIA="print, handheld" HREF="foo.css">