Accueil > Développement > Intégration > Astuces pour une feuille de style pour l’impression

Astuces pour une feuille de style pour l’impression

Un style spécifique pour l’impression

lundi 4 septembre 2006, par Nissone

Les CSS permettent d’utiliser une feuille de style différente en fonction du média utilisé : écran, imprimante, etc.
On peut appliquer à une page web un style spécifique pour l’impression.

Voici quelques astuces et reflexes à avoir au moment de préparer ses pages et ses feuilles de style pour bien profiter des possibilité des styles d’impression.

L’appel à la feuille de style

De la même manière que vous appelez votre ou vos feuilles de style habituellement, vous pouvez ajouter des appels à d’autres feuilles en spécifiant bien le média auquel elles se destinent.

Exemple :

<link rel="stylesheet" type="text/css" href="style-ecran.css" media="screen" />
<link rel="stylesheet" type="text/css" href="style-imprimante.css" media="print" />

La typo

Certaines polices de caractères sont plus agréables à l’écran que d’autres. De la même manière, une police de caractère peut être désagréable ou moins "jolie" une fois imprimée. On peut donc utiliser la feuille de style d’impression pour changer de typo.
Les typo à empâtement, par exemple, sont très fréquentes sur support papier alors qu’elles le sont moins sur écran.
Il faut aussi penser à adapter la taille des caractères.

Exemple :

body {
font: 10pt Times New Roman, serif;
}

Les liens

Les liens de navigation interne n’ont plus d’intérêt sur une feuille imprimée. On peut donc, dès le début, prévoir une classe spécifique à appliquer sur tous ces liens. Ainsi, on peut faire disparaître, par exemple, le sousligné sur les liens type "...que vous trouverez sur la page Recherche".

Les liens externes, eux, sont certainement des liens qui continuent à avoir un sens hors du site.

CSS2 permet d’afficher l’adresse d’un lien après celui-ci. C’est très intéressant pour une feuille de style d’impression puisque, sur papier, impossible de cliquer. Sans cette possibilité, l’information principale du lien (l’adresse) est perdue.
Ne soyez pas déçus, néanmoins, si vous imprimez avec Internet Explorer : cette fonction n’est pas encore implémentée. Cela ne générera pas d’erreur ... mais cela n’affichera pas l’adresse internet non plus !

Exemple :

a.navigationInterne {
text-decoration: none;
}
a:after {
content: " (" attr(href) ") ";
font-size: 0.9em;
}
a.navigationInterne:after {
content: "";
}

Les couleurs et les images de fond

Les couleurs de fond peuvent avoir de gros inconvénients, une fois sur papier.
Elles peuvent, dans certains cas, gêner la lisibilité (plus que sur écran où le contraste n’est pas le même).

C’est encore plus vrai pour les images de fond qui peuvent être jolies et sans effet gênant sur un écran mais poser des problèmes de contraste à la lecture sur papier.

Couleurs de fond et images de fond peuvent aussi utiliser beaucoup d’encre pour un effet graphique mineur. L’internaute apprécierait qu’un site ait pensé à lui éviter le problème.
Cette fonctionnalité est d’ailleurs déjà implémentée par défaut dans certains navigateurs.

Attention, en enlevant les couleurs de fond, à ne pas se retrouver avec un texte illisible. Si un texte jaune, par exemple, était très lisible sur son fond noir, une fois la couleur de fond enlevée, le jaune sur le blanc de la feuille sera très difficile à lire. Il convient d’adapter la couleur du texte à tout changement de couleur de fond.

Exemple :

p {
background: none;
color: #000;
}

Les marges, les espacements

L’aération d’une page imprimée n’est pas la même que pour une page web.
Il sera alors peut-être nécéssaire de revoir les marges, notamment horizontale, sur votre feuille d’impression.
Pensez que l’internaute sera déçu s’il doit imprimer sur 2 pages avec une marge de 4 cm un texte qui tiendrait sur 1 en utilisant simplement toute la largeur de la feuille.

Adaptez les espacements entre les éléments au média. Les titres n’ont pas forcément besoin d’être autant espacés de leur texte sur une version papier qu’à l’écran.

Les sauts de page

Rien de plus désagréable pour un internaute qu’une page sur laquelle n’a été imprimée qu’une seule ligne, qu’un paragraphe dont les derniers mots sont sur la page suivante, qu’un titre qui n’est pas immédiatement suivi par, au moins, la première ligne de son paragraphe, ou qu’une image dont la légende a été imprimée sur la page suivante, etc.
Les styles d’impression permettent de gérer tout ça. Analysez bien vos pages pour voir quels sont les coupures à éviter. Attention à ne pas tomber dans l’excès inverse et de faire des coupures partout : l’internaute n’appréciera pas non plus de devoir imprimer trop de pages.

Les propriétés à utiliser :
- page-break-before (gestion du saut de page avant l’élément)
- page-break-after (gestion du saut de page après l’élément)
- orphans (gestion des lignes seules en bas de page)
- widows (gestion des lignes seules en haut de page)

Exemple :

h1, h2, h3, h4, h5, h6 {
page-break-after:avoid;
}
p {
orphans: 2;
}

Dans l’exemple ci-dessus, aucun saut de page ne sera fait après un titre hn et aucun début de paragraphe ne sera imprimé avec moins de deux lignes en bas de page.

Les zones inutiles

Certaines zones très courantes sur un site web sont néanmoins inutiles sur une version imprimée.
C’est le cas par exemple du menu. L’internaute qui imprime une page n’a plus besoin, quand il voudra relire sa page, d’avoir dans sa lecture tous les items du menu imprimés.

Un formulaire n’a également plus de sens sur une feuille imprimée (sauf, bien-sûr, les formulaires fait pour l’impression).
Il n’est pas forcément utile que le formulaire soit encore visible sur une page contact, par exemple, qui aurait été imprimée pour garder une trace du numéro de téléphone, de l’adresse, etc.

Les liens tels que "Retour à l’accueil" peuvent aussi être évité sur une feuille d’impression. Il faut identifier ces liens et leur assigner une classe particulière pour pouvoir les retirer lors de l’impression.

Exemple :

#menu, #piedDePage, form, #retourHautPage {
display: none;
}
.lienNonImprime {
display: none;
}

Les informations perdues

En supprimant le menu, en ayant pas la barre d’adresse imprimée, certaines informations se retrouvent "hors de la page web".
L’internaute retrouve souvent ce type d’information imprimée en en-tête et pied-de-page (avec la date, parfois le titre...) en fonction de son navigateur et de sa configuration.
Mais le webmaster n’a pas la main sur ces informations.

Pour palier à cela, on peut concevoir, sur chacune des pages, une zone qui ne sera pas visible pour les écrans mais qui le sera à l’impression.
Cette zone reprendrait des informations telles que le titre du site, son URL, des informations importantes qui pourrait manquer au lecteur de la page imprimée (l’email du webmaster, par exemple).

Exemple :
Sur la feuille de style pour écran :

#infosImpression {
display: none;
}

Sur la feuille de style pour imprimante :

#infosImpression {
display: block;
}

Messages

  • Les utilisateurs sont tellement habitués à devoir jongler pour imprimer correctement une page, qu’il est conseillé d’indiquer clairement qu’il y a un mode d’impression spécial. Le plus courant est de mettre un lien "version imprimable" qui montre à l’écran ce qui sera imprimé. Je commence toujours par chercher ce genre de lien quand je désire imprimer un article.