Maison >interface Web >tutoriel CSS >CSS @media print peut-il être utilisé pour imprimer des éléments personnalisés ?

CSS @media print peut-il être utilisé pour imprimer des éléments personnalisés ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-11 08:49:021047parcourir

Can CSS @media print be Used to Print Custom Elements?

Impression d'éléments personnalisés avec CSS

Face à la nécessité de créer une version imprimable d'une page riche en contenu, CSS fournit un mécanisme puissant grâce à la règle d'impression @media. Cependant, la solution fournie soulève des questions sur sa faisabilité et sa compatibilité avec les navigateurs.

Prise en charge du navigateur pour @media print

La règle d'impression @media est prise en charge par tous les principaux navigateurs modernes. , notamment Chrome, Firefox, Safari et Edge. Cela garantit que les styles d'impression peuvent être appliqués de manière cohérente sur différentes plates-formes.

Masquer et révéler des éléments avec CSS

Pour afficher de manière sélective des éléments pendant l'impression, vous pouvez utiliser CSS pour masquer tout sauf ceux marqués d'une classe spécifique. L'extrait CSS suivant y parvient :

@media print {
  * {
    display: none;
  }
  .printable,
  .printable > * {
    display: block;
  }
}

Dans cette approche, tous les éléments avec la classe "printable" et leurs enfants seront visibles lors de l'impression, tandis que tout le reste sera masqué.

Sélecteur négatif et compatibilité du navigateur

Bien que l'utilisation du sélecteur « non » pour exclure des éléments semble logique, elle peut ne pas fonctionner comme prévu dans certains navigateurs. Pour résoudre ce problème, une approche complémentaire peut être utilisée :

@media print {
  body *:not(.printable *) {
    display: none;
  }
}

Cette règle CSS masque tous les éléments du corps, à l'exception des descendants des éléments de classe "printable".

Affichage des éléments dans le navigateur et l'imprimante

Pour afficher certains éléments dans le navigateur mais les masquer à l'impression, vous pouvez utiliser le CSS suivant technique :

@media print {
  .noPrint {
    display: none;
  }
}

@media screen {
  .onlyPrint {
    display: none;
  }
}

Cette approche permet d'inclure des éléments (par exemple, des liens ou des logos) qui ne sont pertinents que pour le navigateur ou la sortie d'impression, respectivement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn