Drucken mit CSS Grundlagen
    
 HomeCSSDiverses • Drucken mit CSS Demo  HTML  CSS   drucken  Seite drucken

 Druck mit CSS Grundlagen

Spezielle CSS-Anweisungen für die Medien 'screen' und 'print' (Bildschirm und Drucker) basieren grundsätzlich auf die Möglichkeit Seitenelemente für bestimmte Medien auszublenden oder anzuzeigen. Zusätzlich kann man für beide Medien noch unterschiedliche Formatierungen zuweisen.

CSS-Anweisungen für Bildschim und Drucker - Grundlagen

Eine einzige HTML-Seite mit unterschiedlichen Ausgabe-Resultaten für den Bildschirm und beim Ausdruck. Mit CSS ist das möglich. Es existiert also nur noch 1 HTML-Datei, die durch CSS-Anweisungen auf dem Bildschirm anders erscheint als beim Ausdruck. Möglich ist das durch spezielle Format-Definitionen für unterschiedliche Ausgabemedien:
  • für den Bildschirm: @media screen
  • für mobile Geräte: @media handheld
  • für den Drucker: @media print
Ich beschänke mich erst einmal auf die beiden Medien Bildschirm und Drucker bzw. kombiniere die beiden Ausgabemedien 'screen' und 'handheld'.

Übrigens wird auch diese Seite in der Druckversion anders dargestellt als sie in der Bildschirmversion angezeigt wird.


   Notwendige Strukturierung der Seite

Voraussetzung ist der strukturierte Aufbau der HTML-Seite. Sie legen vorab fest, welche Elemente auf dem Bildschirm angezeigt, welche im Ausdruck erscheinen und welche auf beiden Medien zu sehen sein sollen.


Sobald feststeht, welche Seitenelemente (unten orange eingefasst) auf dem Bildschirm oder Ausdruck angezeigt werden sollen (oder auch nicht), entwickle ich CSS-Klassen in denen entsprechende Anweisungen stehen. Die 'Verbindung' zu den CSS-Klassen wird über Attibute für die <table>-, <p>-, <span>- oder <div>-Tags hergestellt.

Wichtig ist also die Möglichkeit, bestimmte Seitenelemente über CSS-Anweisungen ansprechen zu können. Die 'Ansprache' kann über eine zugewiesene Klasse oder über eine 'id' erfolgen. Für den Ausdruck bestimme ich dann: "Das Seitenelement mit der Klasse 'navigation' soll nicht angezeigt werden". Ergebnis: Im Ausdruck erscheint das Menü nicht!
<div class="navigation">
Hier steht der HTML-Code für das Menü
</div>
Ein Beispiel:


Die HTML-Seite
Seitenelement für den Bildschirm für den Drucker
Titelgrafik Bildschirm anzeigen ausblenden
Titelgrafik Drucker ausblenden anzeigen
Hauptmenü oben anzeigen ausblenden
Menü links anzeigen ausblenden
Breadkrumb-Navigation anzeigen ausblenden
Seiteninhalt anzeigen anzeigen
Fußzeile anzeigen ausblenden


erwünschtes Ergebnis Bildschirmansicht:



erwünschtes Ergebnis Druckansicht:





   Beispiel für das Ein- bzw. Ausblenden

Die HTML-Datei (Auszug)

Die Ausgabe von Elementen die nur für den Bildschirm bestimmt sind, sollen beim Ausdruck nicht erscheinen. Mit CSS-Anweisungen für das Medium 'print' soll die Ausgabe unterdrückt werden.

Analog dazu soll die Darstellung von Elementen, die nur für den Drucker bestimmt sind, mit CSS-Anweisungen für das medium 'screen' unterdrückt werden.

In der HTML-Datei werden den Seitenelementen über CSS-Klassen bestimmte Eigenschaften zugeordnet. In den CSS-Anweisungen bestimme ich dann, wie mit den Seitenelementen verfahren werden soll (anzeigen oder nicht anzeigen).
<!-- Titellogo für den Bildschirm -->
<div class="bildschirm">
<img src="kopf01.jpg" width="800" height="85" border="0" alt="">
</div>

<!-- Titellogo  für den Drucker -->
<div class="drucker">
<img src="kopf02.jpg" width="800" height="85" border="0" alt="">
</div>



   Aufteilung der CSS-Anweisungen

Die CSS-Angaben z.B. im HEAD-Bereich der HTML-Datei werden nun in zwei Blöcke unterteilt. Die Style-Angaben haben in der kombinierten Schreibweise
  • einen separaten Block für @media screen, handheld
  • einen separaten Block für @media print
In jedem Block wird dem Ausgabemedium mitgeteilt, wie es mit den Seitenlementen zu verfahren hat bzw. wie die Seitenelemente zu formatieren sind.
<style type="text/css">
<!--

@media print {

hier stehen die Anweisungen für Druckerformatierungen

}

@media screen, handheld {

hier stehen die Anweisungen für Bildschirmformatierungen 

}

-->
</style>
Innerhalb der Blöcke tragen Sie Ihre Formatierungsanweisungen ein.
<style type="text/css">
<!--

@media print {

.bildschirm {
display:none;
padding:0px;
margin:0px;
}

.drucker {
padding:0px;
margin:0px;
}

/* Überschriften Drucker 14 Pixel schwarz */
.h1 {
font-size:14px;
color:#000000;
}

/* Tabellenbreite Drucker = 600 Pixel */
table {
width:600px;
}

}

@media screen, handheld {

.bildschirm {
padding:0px;
margin:0px;
}

.drucker {
display:none;
padding:0px;
margin:0px;
}

/* Überschriften Bildschirm 18 Pixel blau */
.h1 {
font-size:18px;
color:#0090E0;
}

/* Tabellenbreite Bildschirm = Inhaltsbreite */
table {
width:100%;
}

}

-->
</style>


Die theoretischen Grundlagen zum Thema 'drucken mit CSS' habe ich auf dieser Seite in meiner Sprache erklärt. Wie immer habe ich einige Bereiche ausgelassen, von denen ich glaube, dass sie im Augenblick für das Verstehen eher irritierend wären.

Ich habe Ihnen unterschlagen, dass es unterschiedliche Methoden gibt, CSS-Anweisungen für Bildschim und Druck einzubinden. Das erfahren Sie auf einer separaten Seite.






   Beispielseite - Demo für das Ein- bzw. Ausblenden

Wenn Sie sich der Praxis zuwenden wollen:

Auf meiner Beispielseite 02 media screen print erkläre ich den strukturierten Aufbau einer HTML-Seite für Bildschirm und Ausdruck. Lesen Sie dort weiter, wenn Sie sich für dieses Thema interessieren. Sie finden dort auch eine ZIP-Datei zum Download des Beispiels für Ihre ersten Experimente mit diesem Themenbereich.

Wenn Sie bereits einen Blick auf die Demo, den HTML-Code oder die CSS-Anweisungen werfen möchten, können Sie die Ansichten in einem neuen Browserfenster bzw. PopUp-Window betrachten. Die Druckansicht der Demo sehen Sie natürlich erst, wenn Sie im Menü des Browsers 'Datei' anklicken und dann 'Druckvorschau' wählen.

Demo des Beispiels ansehen

Quelltext der HTML-Datei

CSS-Formatierungen ansehen

Wenn alles funktioniert, müsste das angezeigte Ergebnis etwa so aussehen:

Screenshot Bildschirmansicht:



Screenshot Druckansicht:



In meinem Anwendungsbeispiel blende ich in der Version für den Ausdruck im Fußbereich zusätzliche Informationen ein, die auf Papier ohne Bezug zur Webseite meiner Meinung nach notwendig sind. Schließlich gibt es ja keinen Link zur Seite 'Kontakt' oder 'Impressum'.








 Druckversion mit CSS 02 Aufbau - media print + screen

 Druckversion mit CSS 03 Aufbau - media print + screen

 Druckversion mit CSS 04 Aufbau - media print + screen

 C03 Druckversion + Bildschirmversion mit CSS media print + screen - Vorlage Download

 C04 Druckversion + Bildschirmversion mit CSS media print + screen - Vorlage Download

 C05 Druckversion + Bildschirmversion mit CSS media print + screen - Vorlage Download