2017-06-20 4 views
0

Ich habe einige Links, die in schwarzem Text sind. Basierend auf dem, was der Benutzer in einem Dropdown auswählt, wende ich das unten stehende CSS an, um passende Links zu ändern. Wenn der Benutzer dann auswählt, um die Ansicht zu drucken, die er gerade sucht, werden die gleichen Links in schwarzem Text ausgedruckt. Wie kann ich das CSS auf eine gedruckte Ansicht übertragen, so dass der Benutzer die gleiche gedruckte Farbe sieht, wie sie auf dem Bildschirm angezeigt wird?Anwenden von CSS auf gedruckte Links

$this.find('a').css("color", "#bfbfbf"); 
$this.find('.fa-play').css("color", "#bfbfbf"); 
$this.find('.fa-check-circle').css("color", "#bfbfbf"); 
+0

[Verwenden Sie ein Sheet und wickeln diese Stile in '@media print {...}'] (https://developer.mozilla.org/en-US/docs/Web/CSS/@media) - Medienabfragen mit Inline-Stilen können jedoch nicht verwendet werden. – Blazemonger

+0

Hat der Benutzer eingeschränkte Optionen in Ihrem Dropdown? Möglicherweise müssen Sie ein separates Stylesheet haben und Klassen hinzufügen sowie die CSS ändern. – disinfor

+1

@Blazonger kann das OP eine andere Frage stellen, da sich die Werte im Markup basierend auf der Auswahl ändern. – disinfor

Antwort

1

Der folgende Code wird die CSS irgendeines Element beeinflusst innen, während im Druckmodus zu sein:

@media print { 
    span { 
     color: black; 
    } 
} 

in dem obigen Beispiel, jede Farbe der Spanne auf Druckmodus schwarz sein wird.

Edit: 28. Oktober 2017 Basierend auf Kommentare @TamirNahum vorgeschlagen, ich habe dies herausgefunden. Unten ist die vollständige Antwort.

Die jQuery .addClass fügt die Klasse 'tailoredLink' in jedes Element ein, das der Dropdown-Auswahl entspricht.

$this.find('a').css("color", "#bfbfbf").addClass("tailoredLink"); 
$this.find('.fa-play').css("color", "#bfbfbf").addClass("tailoredLink"); 
$this.find('.fa-check-circle').css("color", "#bfbfbf").addClass("tailoredLink"); 

Dann, wenn der Benutzer die Seite drucken wählt, wird das folgende CSS zeigt die „Tailored-Links“ in grau.

@media print { 
    .tailoredLink{ 
     color: gray; 
    } 
} 
+0

Dies funktioniert möglicherweise nicht, da sich der Wert basierend auf den vom Benutzer gewählten Werten dynamisch ändert. Oder zumindest scheint das der Fall zu sein. – disinfor

+1

Ich würde es mit einigen jQuery-Code verwenden, um eine Klasse der ausgewählten Farbe festzulegen. Wenn der Benutzer beispielsweise "rot" auswählt, wird eine "rote" Klasse zum Element "body" hinzugefügt. Und dann, in CSS würde ich tun: @media print {.red span {farbe: schwarz}} – TamirNahum

+0

Ja, siehe meinen ursprünglichen Kommentar zu der Frage. Sie sollten die jQuery zu Ihrer Antwort hinzufügen, wenn Sie möchten, dass sie vollständig ist. – disinfor