Accueil > weblog
- Lire le billet précédent - Lire le billet suivant -
Par Laurent Denis, le 23 septembre 2004.
Une discussion sur le forum OpQuast me trotte par la tête depuis quelques temps, à propos des feuilles de styles print. Le fait qu'une CSS print permettent d'obtenir un résultat imprimé différent du résultat affiché :
C'est oublier qu'un document peut très bien avoir plusieurs feuilles de style d'impression.
En fait, la question se résume à proposer à l'utilisateur le choix entre au moins :
Le premier point est le plus évident : les préférences d'impression de l'utilisateur, définies dans sa propre CSS print, s'imposeront dès lors qu'il désactive le style auteur de la page, ou qu'il utilise systématiquement !important.
Les deux possibilités suivantes devraient pouvoir être gérées simplement par le biais des styles alternatifs, plus habituellement utilisés pour le media screen.
Créons tout d'abord une simple page-test :
<h1>Test Plusieurs <abbr>CSS</abbr> print</h1> <p id="style1">Paragraphe imprimé avec le style n°1</p> <p id="style2">Paragraphe imprimé avec le style n°2</p>
Nous écrivons deux feuilles de style print :
#style2 {
display: none;
}
#style1 {
display: none;
}
Nous lions chaque CSS print à notre document à l'aide d'un link, en les différenciant par leur rel et leur title respectifs (rappel : c'est la combinaison de ces valeurs d'attributs qui rend une feuille de style alternative ou préférée, et non plus permanente) :
<link
rel="stylesheet"
type="text/css"
href="print1.css"
media="print"
title="style 1">
<link
rel="alternate stylesheet"
type="text/css"
href="print2.css"
media="print"
title="style 2">
Pour permettre à l'utilisateur de choisir entre style 1 et style 2, nous devons les associer chacun à un style screen (ou all) : seuls ceux-ci sont en effet retenus par les styles switchers natifs des navigateurs actuels (Opera, Mozilla, Firefox, etc.) Créons donc les deux styles correspondants pour l'écran :
<link
rel="stylesheet"
type="text/css"
href="style1.css"
media="all"
title="style 1">
<link
rel="alternate stylesheet"
type="text/css"
href="style2.css"
media="all"
title="style 2">
screen2.css n'est là que pour permettre aux navigateurs de proposer le lien alternatif vers style 2 : cette feuille peut très bien être vide, voire même tout simplement inexistante. Il suffit qu'elle soit déclarée.
Affichons à présent notre page-test dans un navigateur supportant les styles alternatifs, et testons l'aperçu avant impression pour style 1 et style 2 : nous obtenons bien deux impressions différentes de la même page (Testé dans Opera, FireFox et Mozilla Windows).
Il sera facile, sur ce principe, de proposer une impression limitée au contenu utile, et autant de modes d'impression diversement stylés qu'on le voudra...
Les trackbacks pour ce billet sont temporairement fermés en raison d'une série d'attaques de spam.
Commentaires
roby, le 23 septembre 2004
Hello,
sur le meme sujet (enfin, il se rattache au sujet) une question qui m'intrigue depuis quelques jours. Est-ce qu'il est possible (avec ou sans l'aide des CSS) de ne pas afficher l'en-tete et le pied de page imprimé par defaut par la navigateur (date, nombre de pages, url, titre de la page)?
Il est clair que l'utilisateur peut parametrer cet affichage directement dans les options de son navigateur. J'aimerais trouver un script ou une astuce me permettant de controler cela.
Pour IE il existe un script ActiveX qui permet d'atteindre mon but. Je n'ai rien trouvé pour les autres navigateurs.
Une idee?
François Parmentier, le 23 septembre 2004
Dans mon Firefox 1.0PR, je peux, en Print Preview, voir le premier style, passer au deuxième, mais pas revenir au premier.
Fonctionnalité tellement peu utilisée qu'elle est encore buggée?
Laurent Denis, le 23 septembre 2004
@Roby > Ce n'est ni faisable (sauf cas technologie non sécurisée type ActiveX), ni souhaitable : les options de configuration de l'utilisateur sont là pour répondre à ses besoins spécifiques, dont tu ne peux rien présupposer. C'est la marge de manoeuvre qui peut justement lui rendre ton site accessible ou conforme à ses besoins.

@François > Hum... Je ne rencontre aucun problème dans ma bonne vieille version 0.8
(Je repasse au premier style en fermant l'aperçu avant impression et en revenant à "style 1")
roby, le 23 septembre 2004
merci pour ta réponse
Stéph', le 23 septembre 2004
[HORS SUJET]
Laurent tu devrais retirer ton lien sur Opquast car il renvoit sur une page d'erreur loin d'être personnalisée :-<
Le root du site n'est d'ailleurs pas vraiment mieux.
J'espère qu'on retrouvera l'historique des discuss au retour du site...
Elie, le 23 septembre 2004
Oui Oui Oui, désolé.
Nous sommes en plein travaux, mais tout sera en place lundi et les discussions seront de nouveau opérationnelles (archives compris).
Les commentaires pour ce billet sont temporairement fermés en raison d'une série d'attaques de spam.