Ich versuche eine Seite zu drucken. Auf dieser Seite habe ich einer Tabelle eine Hintergrundfarbe gegeben. Wenn ich die Druckvorschau in Chrom ansehe, übernimmt sie nicht die Eigenschaft der Hintergrundfarbe ...
Also habe ich diese Eigenschaft ausprobiert:
-webkit-print-color-adjust: exact;
aber es zeigt immer noch nicht die Farbe.
.vendorListHeading {
background-color: #1a4567;
color: white;
-webkit-print-color-adjust: exact;
}
<div class="bs-docs-example" id="soTable" style="padding-top: 10px;">
<table class="table" style="margin-bottom: 0px;">
<thead>
<tr class="vendorListHeading" style="">
<th>Date</th>
<th>PO Number</th>
<th>Term</th>
<th>Tax</th>
<th>Quote Number</th>
<th>Status</th>
<th>Account Mgr</th>
<th>Shipping Method</th>
<th>Shipping Account</th>
<th style="width: 184px;">QA</th>
<th id="referenceSO">Reference</th>
<th id="referenceSO" style="width: 146px;">End-User Name</th>
<th id="referenceSO" style="width: 118px;">End-User's PO</th>
<th id="referenceSO" style="width: 148px;">Tracking Number</th>
</tr>
</thead>
<tbody>
<tr class="">
<td>22</td>
<td>20130000</td>
<td>Jim B.</td>
<td>22</td>
<td>510 xxx yyyy</td>
<td>[email protected]</td>
<td>PDF</td>
<td>12/23/2012</td>
<td>Approved</td>
<td>PDF</td>
<td id="referenceSO">12/23/2012</td>
<td id="referenceSO">Approved</td>
</tr>
</tbody>
</table>
</div>
google-chrome
css
printing
webkit
ghost_dad
quelle
quelle
Antworten:
Die Chrome CSS-Eigenschaft
-webkit-print-color-adjust: exact;
funktioniert ordnungsgemäß.Es kann jedoch oft schwierig sein, sicherzustellen, dass Sie das richtige CSS zum Drucken haben. Es können verschiedene Maßnahmen ergriffen werden, um die Schwierigkeiten zu vermeiden, die Sie haben. Trennen Sie zunächst Ihr gesamtes Druck-CSS von Ihrem Bildschirm-CSS. Dies erfolgt über das
@media print
und@media screen
.Oft
@media print
reicht es nicht aus, nur ein zusätzliches CSS einzurichten , da auch beim Drucken noch alle anderen CSS enthalten sind. In diesen Fällen müssen Sie sich nur der CSS-Spezifität bewusst sein, da die Druckregeln nicht automatisch gegen nicht gedruckte CSS-Regeln gewinnen.In Ihrem Fall
-webkit-print-color-adjust: exact
funktioniert das. Ihrebackground-color
und Farbdefinitionen werden jedoch von anderen CSS mit höherer Spezifität übertroffen.Obwohl ich die Verwendung unter fast allen Umständen nicht befürworte,
!important
funktionieren die folgenden Definitionen ordnungsgemäß und legen das Problem offen:Hier ist die Geige (und zur Vereinfachung der Druckvorschau eingebettet ).
quelle
Print preview failed.
erhalte ich die Nachricht in Chrome v47.0.2526.106Diese CSS-Eigenschaft ist alles, was Sie brauchen. Sie funktioniert für mich ... Bei der Vorschau in Chrome haben Sie die Möglichkeit, sie in BW und Farbe ( Farbe: Optionen - Farbe oder Schwarzweiß ) anzuzeigen. Wenn Sie diese Option also nicht haben, dann Ich schlage vor, diese Chrome-Erweiterung zu nutzen und Ihnen das Leben zu erleichtern:
https://chrome.google.com/webstore/detail/print-background-colors/gjecpgdgnlanljjdacjdeadjkocnnamk?hl=de
Die Site, die Sie auf fiddle hinzugefügt haben, benötigt dies in Ihrem Mediendruck-CSS (Sie müssen es nur hinzufügen ...
Mediendruck CSS im Körper:
UPDATE OK, Ihr Problem ist also bootstrap.css ... es hat genauso wie Sie ein Media Print CSS ... Sie entfernen das und das sollte Ihnen Farbe geben ... Sie müssen entweder Ihr eigenes machen oder dabei bleiben Bootstraps drucken CSS.
Wenn ich auf Drucken klicke, sehe ich Farbe .... http://jsfiddle.net/rajkumart08/TbrtD/1/embedded/result/
quelle
@media print { body {margin:0; padding:0; line-height: 1.4em; word-spacing:1px; letter-spacing:0.2px; font: 12px Arial, Helvetica,"Lucida Grande", serif; color: #000;}....
Sie müssen es dort hinzufügen ...Chrome rendert beim Drucken keine Hintergrundfarbe oder andere Stile, wenn die Einstellung für die Hintergrundgrafik deaktiviert ist.
Dies hat nichts mit CSS, @media oder Spezifität zu tun. Sie können sich wahrscheinlich darum herumhacken, aber der einfachste Weg, Chrom dazu zu bringen, die Hintergrundfarbe und andere Grafiken anzuzeigen, besteht darin, dieses Kontrollkästchen unter Weitere Einstellungen ordnungsgemäß zu aktivieren.
quelle
Ich musste nur das
!important
Attribut zum Hintergrundfarben-Tag hinzufügen , damit es angezeigt wurde. Ich brauchte den Webkit-Teil nicht:background-color: #f5f5f5 !important;
quelle
Wenn Sie Bootstrap oder ein anderes CSS von Drittanbietern verwenden, stellen Sie sicher, dass Sie den Medienbildschirm nur darauf angeben, damit Sie die Kontrolle über den Druckmedientyp in Ihren eigenen CSS-Dateien haben:
quelle
Ihr CSS muss folgendermaßen aussehen:
quelle
Für diejenigen, die BOOTSTRAP.CSS verwenden, ist dies die Lösung!
Ich habe alle Lösungen ausprobiert und sie funktionierten nicht ... bis ich herausfand, dass bootstrap.css ein super nerviges
@media print
Problem hat, das alle Ihre Farben, Hintergrundfarben, Schatten usw. zurücksetzt.Entfernen Sie diesen Abschnitt entweder aus bootstrap.css (oder aus bootstrap.min.css).
Oder überschreiben Sie diese Werte im CSS der Seite, die Sie selbst drucken möchten
@media print
quelle
Verwenden Sie Folgendes in Ihrem
@media print
Stylesheet.Hier sind ein paar Dinge zu beachten:
Siehe meine Geige für eine detailliertere Demonstration.
quelle
Sind Sie sicher, dass dies ein CSS-Problem ist? Es gibt einige Beiträge auf Google zu diesem Thema: http://productforums.google.com/forum/#!category-topic/chrome/discuss-chrome/eMlLBcKqd2s
Dies kann mit dem Druckvorgang zusammenhängen. Auf der Safari, die auch ein Webkit ist, gibt es ein Kontrollkästchen zum Drucken von Hintergrundbildern und Farben im Druckerdialog.
quelle
Wenn Sie IE verwenden, gehen Sie zur Druckvorschau (Rechtsklick auf Dokument -> Druckvorschau), gehen Sie zu den Einstellungen und es gibt die Option "Hintergrundfarbe und Bilder drucken", wählen Sie diese Option aus und versuchen Sie es.
quelle
In den Bootstrap-CSS-Dateien unter @media print {*,: after ,: before ....} befindet sich ein Stil, der mit den Bezeichnungen color! Töte diese beiden CSS-Teile und es wird funktionieren.
Bootstrap trifft die ausführende Entscheidung, dass Sie niemals eine Hintergrundfarbe in Drucken haben sollten, also müssen Sie deren CSS bearbeiten oder einen anderen! Wichtigen Stil haben, der eine höhere Priorität hat. Gute Arbeit Bootstrap ...
quelle
Ich habe die Antwort von purgatory101 verwendet , hatte jedoch Probleme, alle Farben (Symbole, Hintergründe, Textfarben usw.) beizubehalten, insbesondere, dass CSS-Stylesheets nicht mit Bibliotheken verwendet werden können, die die Farben des DOM-Elements dynamisch ändern. Daher gibt es hier ein Skript, das die Stile (
background-colour
undcolour
) des Elements vor dem Drucken ändert und Stile löscht, sobald der Druckvorgang abgeschlossen ist. Es ist nützlich zu vermeiden, viel CSS in ein@media print
Stylesheet zu schreiben, da es unabhängig von der Seitenstruktur funktioniert.Es gibt einen Teil des Skripts, der speziell dafür entwickelt wurde, die Farbe der FontAwesome-Symbole beizubehalten (oder jedes Element, das einen
:before
Selektor zum Einfügen von farbigem Inhalt verwendet).JSFiddle zeigt das Skript in Aktion
Kompatibilität: Funktioniert in Chrome, ich habe keine anderen Browser getestet.
Ändern Sie anschließend die
window.print
Funktion, um die Stile vor dem Drucken festzulegen und anschließend zurückzusetzen.Der Teil, der Symbolpfade zum Erstellen von CSS für: before-Elemente findet, ist eine Kopie dieser SO-Antwort
quelle
var
auswindow
Ihrem letzten Code-Snippet entfernen müssen)Sie können die
box-shadow
Eigenschaft auch verwenden .quelle
Wenn Sie Bootstrap verwenden, verwenden Sie diesen Code einfach in Ihrer benutzerdefinierten CSS-Datei. Bootstrap entfernt alle Ihre Farben in der Druckvorschau.
quelle
Wenn Sie Bootstrap ohne die Option "Druckmedienstile" herunterladen, tritt dieses Problem nicht auf und Sie müssen den Code "@media print" nicht manuell in Ihrer Datei bootstrap.css entfernen.
quelle
Die beste Lösung hierfür, wenn Sie Bootstrap verwenden. Entfernen Sie einfach eines: @media print {} den gesamten Code darin. und aktivieren Sie Hintergrundgrafiken aus mehr Einstellungen, während Sie die Druckvorschau aufnehmen.
quelle
Ich lade meine externe CSS-Quelldatei doppelt und ändere media = "screen" in media = "print". Alle Rahmen für meine Tabelle wurden angezeigt
Versuche dies :
quelle