CSS Printing: A Comprehensive Guide for Beginners
Hallo da, zukünftige CSS-Meister! Heute tauchen wir ein in die faszinierende Welt des CSS Druckens. Als dein freundlicher Nachbarschafts-Computerlehrer bin ich aufgeregt, euch auf diese Reise mitzunehmen. Keine Sorge, wenn ihr noch nie eine Zeile Code geschrieben habt – wir beginnen bei den ganz Basics und arbeiten uns hoch. Also, holt euch eine Tasse Kaffee (oder Tee, wenn das euer Ding ist) und los geht's!
CSS Printing - Using A Print Style Sheet
Habt ihr jemals versucht, eine Webseite auszudrucken, nur um festzustellen, dass sie nichts mit dem auf dem Bildschirm Gesehenen zu tun hat? Genau da kommen Druck-Style-Sheets zur Rettung! Sie sind wie magische Sprüche, die eure Webinhalte in druckerfreundliche Formate verwandeln.
Lassen wir mit einem einfachen Beispiel beginnen:
<head>
<link rel="stylesheet" type="text/css" href="screen.css" media="screen">
<link rel="stylesheet" type="text/css" href="print.css" media="print">
</head>
In diesem Snippet sagen wir dem Browser, dass er verschiedene Style-Sheets für Bildschirm und Druck verwenden soll. Das media
-Attribut ist hier unser geheimer Trumpf. Wenn ihr die Seite auf dem Bildschirm ansieht, verwendet er screen.css
. Aber drückt ihr die Drucktaste, und voilà! print.css
übernimmt die Kontrolle.
CSS Printing - Using Media Queries and @page At-Rule
Nun, lassen wir unser Spiel auf das nächste Level heben mit Media Queries und der @page-Regel. Das ist wie das dynamische Duo des CSS-Druckens!
@media print {
body {
font-size: 12pt;
color: #000;
background-color: #fff;
}
@page {
margin: 1in;
}
}
Dieser Code sagt: "Hey Browser, wenn du druckst, mach den Text 12pt, schwarz auf weiß und gib mir 1-Zoll-Ränder ringsum." Der @media print
-Teil ist unsere Media Query, und @page
stellt unsere Seitenauslage ein.
CSS Printing - Print Requests Detection
Wär's nicht cool, wenn deine Webseite erkennen könnte, wenn jemand versucht, sie auszudrucken? Na, das kann sie! Hier ist, wie:
window.addEventListener('beforeprint', function() {
console.log('Drucken...');
});
window.addEventListener('afterprint', function() {
console.log('Druck abgeschlossen');
});
Dieser JavaScript-Snippet ist wie ein kleiner Spion, der uns flüstert, wenn das Drucken beginnt und endet. Super praktisch für letzte Minuten-Anpassungen!
CSS Printing - Using @page at-rule
Die @page-Regel ist wie eine magische Zauberstab für die Kontrolle deiner gedruckten Seiten. Sehen wir uns das in Aktion an:
@page {
size: A4;
margin: 0;
}
@page :first {
margin-top: 2cm;
}
Hier stellen wir alle Seiten auf A4-Größe ohne Ränder ein, aber geben der ersten Seite einen speziellen 2cm oberen Rand. Es ist, als würde man dem Inhalt einen roten Teppich ausrollen!
CSS Printing - Using @media Query
Wir haben @media bereits gesehen, aber lassen uns tiefer einsteigen:
@media print {
.no-print {
display: none;
}
a[href^="http"]:after {
content: " (" attr(href) ")";
}
}
Dieser Snippet verbirgt Elemente mit der Klasse no-print
und fügt nach externen Links die URL ein. Es ist, als hätte man einen persönlichen Assistenten, der die Webseite für den Druck aufräumt!
CSS Printing - Use Of afterprint Event
Erinnert ihr euch an unseren kleinen JavaScript-Spion von früher? Lassen wir ihn arbeiten:
window.addEventListener('afterprint', function() {
document.body.style.backgroundColor = 'lightblue';
alert('Ich hoffe, ihr habt eure Ausdrucke genossen!');
});
Dieser Code ändert die Hintergrundfarbe nach dem Drucken und zeigt eine freundliche Nachricht. Es ist, als würde man für die Nutzer eine kleine Dankesnachricht hinterlassen!
CSS Printing - Link To An External Style Sheet
Last but not least, lassen wir nochmal überprüfen, wie man eine externe Druck-Style-Sheet verlinkt:
<link rel="stylesheet" type="text/css" href="print.css" media="print">
Diese Zeile ist euer Goldener Schlüssel zu druckerfreundlichen Webseiten. Erstellen sie eine Datei namens print.css
, fügt eure Druckstile hinzu, und los geht's!
Methode | Beschreibung | Beispiel |
---|---|---|
Druck-Style-Sheet | Separates CSS-File für Druckmedien | <link rel="stylesheet" type="text/css" href="print.css" media="print"> |
Media Queries | CSS-Regeln, die nur beim Drucken angewendet werden | @media print { body { font-size: 12pt; } } |
@page At-Rule | Steuert seiten-spezifische Eigenschaften | @page { margin: 1in; } |
Druckanforderungs-Erkennung | JavaScript zur Erkennung von Druckversuchen | window.addEventListener('beforeprint', function() { ... }); |
afterprint-Ereignis | JavaScript, das nach dem Drucken ausgeführt wird | window.addEventListener('afterprint', function() { ... }); |
Und da habt ihr es, Leute! Ihr habt die ersten Schritte in die Welt des CSS-Druckens gewagt. Denkt daran, Übung macht den Meister, also fürchtet euch nicht, zu experimentieren. Wer weiß? Vielleicht werdet ihr ja der Picasso der Druck-Style-Sheets! Bis zum nächsten Mal, happy coding!
Credits: Image by storyset