Guida Completa alla Stampa con CSS per Principianti

Ciao a tutti, futuri maestri del CSS! Oggi andremo a esplorare il mondo affascinante della stampa con CSS. Come il tuo amico insegnante di informatica del quartiere, sono entusiasta di portarti in questo viaggio. Non preoccuparti se non hai mai scritto una riga di codice prima – inizieremo dalle basi e lavoreremo fino a raggiungere un livello più avanzato. Allora, prenditi una tazza di caffè (o tè, se è il tuo preferito) e iniziamo!

CSS - Printing

Stampa con CSS - Utilizzo di una Foglia di Stile per la Stampa

Hai mai provato a stampare una pagina web solo per scoprire che non ha nulla a che vedere con ciò che vedi sullo schermo? Ecco dove entrano in gioco le foglie di stile per la stampa! Sono come incantesimi magici che trasformano il tuo contenuto web in formati adatti alla stampa.

Iniziamo con un esempio semplice:

<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 questo frammento, stiamo dicendo al browser di utilizzare foglie di stile diverse per lo schermo e la stampa. L'attributo media è la nostra arma segreta qui. Quando visualizzi la pagina sullo schermo, utilizza screen.css. Ma premi il pulsante di stampa, e voilà! print.css prende il sopravvento.

Stampa con CSS - Utilizzo di Media Queries e la Regola @page

Ora, diamo un'ulteriore spinta al nostro gioco con le media queries e la regola @page. Questi sono come il duo dinamico della stampa con CSS!

@media print {
body {
font-size: 12pt;
color: #000;
background-color: #fff;
}

@page {
margin: 1in;
}
}

Questo codice dice, "Ehi browser, quando stai stampando, rendi il testo 12pt, nero su bianco, e dai margini di 1 pollice ovunque." La parte @media print è la nostra media query, e @page imposta la nostra impaginazione della pagina.

Stampa con CSS - Rilevamento delle Richieste di Stampa

Non sarebbe fantastico se il tuo sito web potesse sapere quando qualcuno sta cercando di stamparlo? Beh, può farlo! Ecco come:

window.addEventListener('beforeprint', function() {
console.log('Stampe...');
});

window.addEventListener('afterprint', function() {
console.log('Stampa completata');
});

Questo frammento JavaScript è come un piccolo spia che sussurra a noi quando la stampa inizia e finisce. Molto utile per fare ultimi aggiustamenti!

Stampa con CSS - Utilizzo della Regola @page

La regola @page è come una bacchetta magica per controllare le tue pagine stampate. Vediamo come funziona:

@page {
size: A4;
margin: 0;
}

@page :first {
margin-top: 2cm;
}

Qui, stiamo impostando tutte le pagine in formato A4 senza margini, ma dando alla prima pagina un margine superiore speciale di 2cm. È come stendere il tappeto rosso per il tuo contenuto!

Stampa con CSS - Utilizzo della Media Query

Abbiamo visto @media prima, ma approfondiamo:

@media print {
.no-print {
display: none;
}

a[href^="http"]:after {
content: " (" attr(href) ")";
}
}

Questo frammento nasconde gli elementi con la classe no-print e aggiunge l'URL dopo qualsiasi link esterno. È come avere un assistente personale che sistema il tuo sito web per la stampa!

Stampa con CSS - Utilizzo dell'Evento afterprint

Ricordiamo il nostro piccolo spia JavaScript da prima. Mettiamolo al lavoro:

window.addEventListener('afterprint', function() {
document.body.style.backgroundColor = 'lightblue';
alert('Spero che tu abbia apprezzato il tuo stampato!');
});

Questo codice cambia il colore di sfondo del corpo del documento in azzurro chiaro dopo la stampa e mostra un messaggio amichevole. È come lasciare una piccola nota di ringraziamento per i tuoi utenti!

Stampa con CSS - Link a una Foglia di Stile Esterna

Ultimo ma non meno importante, ricapitoliamo come collegare una foglia di stile esterna per la stampa:

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

Questa riga è il tuo biglietto d'oro per le pagine web adatte alla stampa. Basta creare un file chiamato print.css, aggiungere le tue stili di stampa, e sei a posto!

Metodo Descrizione Esempio
Foglia di Stile per la Stampa Foglia di stile separata per i media di stampa <link rel="stylesheet" type="text/css" href="print.css" media="print">
Media Queries Regole CSS che si applicano solo durante la stampa @media print { body { font-size: 12pt; } }
Regola @page Controlla le proprietà specifiche della pagina @page { margin: 1in; }
Rilevamento delle Richieste di Stampa JavaScript per rilevare i tentativi di stampa window.addEventListener('beforeprint', function() { ... });
Evento afterprint JavaScript per eseguire codice dopo la stampa window.addEventListener('afterprint', function() { ... });

Ecco qui, gente! Avete appena fatto i vostri primi passi nel mondo della stampa con CSS. Ricordate, la pratica rende perfetti, quindi non abbiate paura di sperimentare. Chi lo sa? Potresti diventare il Picasso delle fogli di stile per la stampa! Fino alla prossima volta, happy coding!

Credits: Image by storyset