In questa mini guida andremo a vedere come sia facile realizzare un foglio di stile che entri in azione solamente quando un utente decide di stampare una pagina web, modificandola e rendendola pronta per la stampa.
L’obiettivo principale da porsi quando si vuole progettare un foglio di stile per la stampa è la semplificazione del layout del sito, tramite una scrematura di elementi superflui, dando completamente spazio al contenuto,come testi, evantuali immagini riferite utili al lettore e magari un logo o un riferimento per ricordare al lettore da dove ha stampato la pagina.
Gli elementi superflui sono tutti quegli elementi nella pagina web che diventano inutili nell passaggio dal web alla stampa, come menu, banner pubblicitari, barre di navigazione, form, footer etc, a meno che non abbiano un preciso scopo informativo e di utilità anche sul cartaceo.
Inizia la guida:
Quando vogliamo creare un foglio di stile per la stampa è d’obbligo creare un nuovo file, per esempio print.css, e inserirlo nella directory del sito.

Per richiamare questo nuovo foglio di stile sarà sufficiente aprire la pagina web e inserire tra i tag head il link con collegamento al file print.css, è importante inserire nel tag link l’attributo media=”print”, questo permetterà di riconoscere e attivare print.css solo quando il lettore decide di stampare la paigna web.
<head> ... <link rel="stylesheet" href="style.css" type="text/css" media="screen" /> /* Foglio di stile principale */ <link rel="stylesheet" href="print.css" type="text/css" media="print" /> /* Foglio per la stampa */ ... </head>
Un passaggio fondamentale da fare quando vogliamo realizzare un foglio di stile per la stampa di una pagina web è pianificare e identificare quali sono gli elementi del documento che non sono utili alla lettura su carta e di conseguenza eliminarli.
in un post di un blog, per esempio, gli elementi che non servono, a meno di casi particolari, potrebbero essere Header, Sidebar e Footer con i loro relativi menu, form e campi di ricerca, blocchi ADS, iconeetc, mentre gli elementi importanti sono sicuramente il titolo del post, il contenuto, le immagini e in alcuni casi anche i commenti.
Terminata la pianificazione possiamo ora aprire il file print.css e cominciare a scrivere il codice CSS per togliere gli elementi sopra citati dalla pagina di stampa tramite la proprietà display:none, quindi:
#header, #sidebar, #footer,#comment-form {display:none;}
A questo punto abbiamo cancellato quello che non serviva, ora dobbiamo ridimensionare e riposizionare gli elementi rimasti:
Per prima cosa ridimensioniamo il contenuto del post rendendolo a piena pagina e assegnando un piccolo margine dai quattro bordi esterni:
#contenuto { width:100%; margin10px; padding:0; float:none; }
Come e dove posizionare le immaigni rimane un aspetto molto soggettivo ma comunque da affrontare anche per la versione della stampa, non esistono particolare regole o istruzioni a cui attenersi, dipende tutto dalle vostre esigenze.
A meno che non vogliate usare il font standard assegnato dal browser alla pagina web può essere utile ridefinire il font con il quale volete vengano stampati i testi.
body {font-size: 1em; line-hieght:1.2em; font-family: Georgia, serif; color:#000;}
Segnalare nel testo quali sono i link, anche quelli visitati e indicarne affianco l’url può essere una buona informazione per il lettore
a:link, a:visited {color: #781351} #content a[href^="/"]:after { content: " (http://www.fmdesignblog.com" attr(href) ") "; }
Per evitare che colori o immagini che non si desiderano vengano stampati interferendo con la lettura del post può essere utile riformattare il colore di sfondo del body e quello del div #contenuto.
body {background-color:#fff;} #contenuto { background-color: transparent; }
Adesso possiamo aggiungere alcuni Pseudo elementi o Pseudo classi per abbellire i testi e dargli un valore aggiunto, in particolare potremo usare:
#content:first-letter {font-size:3.5em; display:block; float:left; margin-right:10px; color:#red;}
#content:first-line {font-size:1.5em; font-style:normal;}
#content:nth-of-type(1) { font-size:2em; font-weight:bold;}
Bell’articolo
bravo.
Ciao, come si può risolvere il problema delle immagini che vengono tagliate tra una pagina e l’altra???
Grazie in anticipo.
Ciao Nicola grazie per aver segnalato il tuo problema, questo è un aspetto importante che mi sono dimenticato di inserire nell’articolo.
Per risolvere questo problema prova ad aggiunegere al foglio di stile print.css queste proprietà al selettore img
Questo dovrebbe evitare qualsiasi taglio delle immagini, fammi sapere se funziona.
Ciao
Ciao Francesco, grazie per la risposta!
Avevo provato solo con il page-break-inside:avoid ora va bene per la stampa!
Inoltre ho scoperto che per la generazione di un .pdf non funziona lato css…si risolve modificando le opzioni della dll che genera il pdf.
Ciao
Bene, mi fa piacere che funzioni, ciao Nicola.
Alla prossima