Guide Complet sur l'Impression CSS pour Débutants

Salut à toi, futurs maîtres de CSS ! Aujourd'hui, nous allons plonger dans le monde fascinant de l'impression CSS. En tant que votre enseignant informatique de quartier, je suis excité de vous faire découvrir ce voyage. Ne vous inquiétez pas si vous n'avez jamais écrit une ligne de code auparavant - nous allons commencer par les bases et progresser pas à pas. Alors, prends une tasse de café (ou de thé, si c'est ton truc), et c'est parti !

CSS - Printing

Impression CSS - Utilisation d'une Feuille de Style d'Impression

As-tu déjà essayé d'imprimer une page web pour découvrir qu'elle ne ressemble en rien à ce que tu vois à l'écran ? C'est là que les feuilles de style d'impression entrent en jeu ! Elles sont comme des sorts magiques qui transforment ton contenu web en formats imprimeurs friendly.

Commençons par un exemple simple :

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

Dans cet extrait, nous disons au navigateur d'utiliser différentes feuilles de style pour l'écran et l'impression. L'attribut media est notre arme secrète ici. Lorsque tu visualises la page sur un écran, elle utilise screen.css. Mais appuie sur ce bouton d'impression, et hop ! print.css prend le relais.

Impression CSS - Utilisation de Media Queries et de la Règle @page

Maintenant, levons notre jeu avec les media queries et la règle @page. Ce sont comme le duo dynamique de l'impression CSS !

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

@page {
margin: 1in;
}
}

Ce code dit : "Bonjour navigateur, lorsque tu imprimes, rend le texte en 12pt, noir sur blanc, et donne-moi des marges de 1 pouce tout autour." La partie @media print est notre media query, et @page configure notre mise en page.

Impression CSS - Détection des Demandes d'Impression

Ne serait-il pas génial si ta page web pouvait savoir quand quelqu'un essaie de l'imprimer ? Eh bien, c'est possible ! Voici comment :

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

window.addEventListener('afterprint', function() {
console.log('Impression terminée');
});

Ce morceau de JavaScript est comme un petit espion qui nous chuchote lorsque l'impression commence et se termine. Très pratique pour faire des ajustements de dernière minute !

Impression CSS - Utilisation de la Règle @page

La règle @page est comme une baguette magique pour contrôler tes pages imprimées. Voyons-la en action :

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

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

Ici, nous définissons toutes les pages en taille A4 sans marges, mais donnons à la première page une marge supérieure spéciale de 2cm. C'est comme rouler la red carpet pour ton contenu !

Impression CSS - Utilisation de la Media Query

Nous avons déjà vu @media, mais penchons-nous plus en détail :

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

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

Ce fragment masque les éléments avec la classe no-print et ajoute l'URL après tout lien externe. C'est comme avoir un assistant personnel qui nettoie ta page web pour l'impression !

Impression CSS - Utilisation de l'Événement afterprint

Souviens-toi de notre petit espion JavaScript précédent ? Mettons-le au travail :

window.addEventListener('afterprint', function() {
document.body.style.backgroundColor = 'lightblue';
alert('J'espère que tu as apprécié ton tirage !');
});

Ce code change la couleur de fond en bleu clair après l'impression et affiche un message amical. C'est comme laisser un petit mot de remerciement pour tes utilisateurs !

Impression CSS - Lien Vers une Feuille de Style Externe

Pour finir, récapitulons comment lier une feuille de style d'impression externe :

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

Cette ligne est ton billet doré pour des pages web imprimeurs friendly. Crée simplement un fichier nommé print.css, ajoute tes styles d'impression, et c'est parti !

Méthode Description Exemple
Feuille de Style d'Impression Fichier CSS séparé pour le média d'impression <link rel="stylesheet" type="text/css" href="print.css" media="print">
Media Queries Rules CSS qui s'appliquent uniquement lors de l'impression @media print { body { font-size: 12pt; } }
Règle @page Contrôle les propriétés spécifiques à la page @page { margin: 1in; }
Détection des Demandes d'Impression JavaScript pour détecter les tentatives d'impression window.addEventListener('beforeprint', function() { ... });
Événement afterprint JavaScript pour exécuter du code après l'impression window.addEventListener('afterprint', function() { ... });

Et voilà, les amis ! Tu viens de faire tes premiers pas dans le monde de l'impression CSS. Souviens-toi, la pratique fait toujours perfection, alors n'ayez pas peur d'expérimenter. Qui sait ? Tu pourrais devenir le Picasso des feuilles de style d'impression ! Jusqu'à la prochaine fois, bon codage !

Credits: Image by storyset