566 Stimmen

Wie kann ich ein Element beim Drucken einer Webseite ausblenden?

Ich habe auf meiner Webseite einen Link zum Drucken der Webseite. Der Link ist jedoch auch auf dem Ausdruck selbst sichtbar.

Gibt es einen Javascript- oder HTML-Code, der den Link-Button ausblendet, wenn ich auf den Druck-Link klicke?

Beispiel:

 "Good Evening"
 Print (click Here To Print)

Ich möchte dieses Etikett "Drucken" ausblenden, wenn der Text "Guten Abend" gedruckt wird. Das Etikett "Drucken" soll nicht auf dem Ausdruck selbst erscheinen.

922voto

In Ihrem Stylesheet hinzufügen:

@media print
{    
    .no-print, .no-print *
    {
        display: none !important;
    }
}

Dann fügen Sie class='no-print' (oder fügen Sie die No-Print-Klasse zu einer bestehenden Klassenanweisung hinzu) in Ihrem HTML-Code, der in der gedruckten Version nicht erscheinen soll, wie z. B. Ihre Schaltfläche.

1 Stimmen

Media="print" funktionierte auf einer bestimmten Website aus irgendeinem Grund nicht, aber dieser Trick schon. Hut ab!

24 Stimmen

Diese Antwort ist nicht vollständig. Sie müssen zwei Medienbereiche haben. @media Drucken und @media Bildschirm. Im Druckbereich platzieren Sie Ihre Stile für den Druck. Im Bereich Bildschirm platzieren Sie Ihre Stile für den Siebdruck. Sie können sogar mehrere Bildschirmabschnitte für unterschiedliche Auflösungen haben. Wenn Sie nur das in dieser Antwort Gesagte hinzufügen, wird es nicht funktionieren. Glauben Sie mir, ich habe es versucht. Wie kommt es also, dass diese Antwort 69 Mal hochgestuft wurde?

6 Stimmen

Tatsächlich funktioniert es, wenn Sie nur den angegebenen Code verwenden. Ich habe es gerade in Firefox ausprobiert. Also, zumindest in modernen Browsern ist dies die Lösung.

240voto

Bijan Punkte 24044

Bootstrap 3 hat seine eigene Klasse für diese genannt:

hidden-print

Sie ist wie folgt definiert:

@media print {
  .hidden-print {
    display: none !important;
  }
}

Sie müssen es nicht selbst definieren.


Unter Bootstrap 4 y Bootstrap5 wurde dies geändert in:

.d-print-none

0 Stimmen

Ist es class=".d-print-none"? Oder wie verwende ich es? Denn ich habe versucht, dass und nicht funktionieren, ich benutze Bootstrap 5. Ich verwendete window.print in einer .js-Datei zu drucken.

181voto

Andreas Grech Punkte 102197

Die beste Praxis ist, dass eine Formatvorlage speziell für den Druck verwenden und und setzen seine media Attribut zu print .

Blenden Sie darin die Elemente ein/aus, die auf Papier gedruckt werden sollen.

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

9 Stimmen

Hier sollten Sie auch css haben, um andere Wrapper-Inhalte nicht anzuzeigen, die font-family auf einen besseren Wert zu ändern, Breiten zu entfernen, um eine vollständige Nutzung der Seite zu ermöglichen. Wenn Sie Ihr Haupt-Stylesheet auf media="screen" setzen, können Sie Ihr Druck-Stylesheet als neues Playgound behandeln.

2 Stimmen

Ganz genau. Und mit diesem Ansatz können Sie entweder einfach "Klicken Sie hier für eine druckbare Version" entfernen oder "Diese Seite ist druckerfreundlich" oder ähnliches hinzufügen. Eine gute Praxis ist, wie Steve Perks sagte, alle unnötigen Inhalte wie Navigation, Werbung und ähnliches zu entfernen. Nehmen Sie nur den Hauptinhalt der Seite auf.

73voto

Hier ist eine einfache Lösung Setzen Sie dieses CSS

@media print{
   .noprint{
       display:none;
   }
}

und hier ist der HTML-Code

<div class="noprint">
    element that need to be hidden when printing
</div>

3 Stimmen

Eine Klasse wäre hier die bessere Wahl als eine id, und zwar aus dem einfachen Grund, dass Sie diese Regel nur auf eine Sache pro Seite anwenden können, wenn Sie eine id verwenden. Eine Klasse würde es Ihnen ermöglichen, sie überall anzuwenden.

0 Stimmen

Und ich glaube, Sie können display:none in visibility:hidden ändern, wenn Sie möchten, dass die Elemente denselben Platz einnehmen, nur nicht angezeigt werden.

0 Stimmen

Also, eine einfache und praktikable Lösung. Bevor ich dachte, wir können nicht die Druckversion der Seite beeinflussen.

15voto

user3806549 Punkte 1328

CSS-DATEI

@media print
{
    #pager,
    form,
    .no-print
    {
        display: none !important;
        height: 0;
    }

    .no-print, .no-print *{
        display: none !important;
        height: 0;
    }
}

HTML-KOPFZEILE

<link href="http://stackoverflow.com/theme/css/ui/ui.print.css?version=x.x.x" media="print" rel="stylesheet" type="text/css" >

ELEMENT

<div class="no-print"></div>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X