Cette question a été posée auparavant mais la solution n'est pas applicable dans mon cas. Je veux m'assurer que certaines images d'arrière-plan sont imprimées car elles font partie intégrante de la page. (Ce ne sont pas des images directement dans la page car plusieurs d'entre elles sont utilisées comme sprites CSS.)
Une autre solution sur cette même question suggère d'utiliser list-style-image
, qui ne fonctionne que si vous avez une image différente pour chaque icône, aucun sprite CSS possible.
En plus de créer une page séparée avec les icônes en ligne, existe-t-il une autre solution?
la source
Les navigateurs, par défaut, ont leur option pour imprimer les couleurs d'arrière-plan et les images désactivées. Vous pouvez ajouter quelques lignes en CSS pour contourner cela. Il suffit d'ajouter:
la source
!important
nécessaire?color-adjust
n'est malheureusement pas correctement pris en charge par FireFox. Il semble s'appliquer uniquement à l'arrière-plan, pas à lacolor
propriété css. Il est signalé comme un bug , sans trop d'activité ni de votes. Garder l'arrière-plan est tout à fait inutile si la couleur de la police n'est pas conservée, ce qui la rend illisible.J'ai trouvé un moyen d'imprimer l'image de fond avec CSS. Cela dépend un peu de la façon dont votre arrière-plan est présenté, mais cela semble fonctionner pour mon application.
Essentiellement, vous ajoutez le
@media print
à la fin de votre feuille de style et modifiez légèrement l'arrière-plan du corps.Exemple, si votre CSS actuel ressemble à ceci:
À la fin de votre feuille de style, vous ajoutez:
Cela ajoute l'image au corps en tant qu'image «de premier plan», la rendant ainsi imprimable. Vous devrez peut-être ajouter du CSS supplémentaire pour faire le
z-index
bon. Mais encore une fois, cela dépend de la présentation de votre page.Cela a fonctionné pour moi lorsque je ne pouvais pas afficher une image d'en-tête en mode d'impression.
la source
<img>
(pour RWD) avec un autre pour@media print
. L'image Web était sur un fond sombre, donc l'impression de cette image ne fonctionnait pas sur du papier blanc, et je ne voulais pas forcer les utilisateurs à imprimer un fond sombre sur l'en-tête. Parfait!Le code ci-dessous fonctionne bien pour moi (au moins pour Chrome).
J'ai également ajouté des commandes de marge et d'orientation de la page (portrait, paysage)
la source
Assurez-vous d'utiliser l'attribut! Important. Cela augmente considérablement la probabilité que vos styles soient conservés lors de l'impression.
la source
Comme @ ckpepper02 l'a dit, l'option body content: url fonctionne bien. J'ai trouvé cependant que si vous le modifiez légèrement, vous pouvez simplement l'utiliser pour ajouter une image d'en-tête en utilisant le pseudo élément: before comme suit.
Cela glissera l'image en haut de la page, et d'après mes tests limités, cela fonctionne dans Chrome et l'IE9
-merci
la source
Utilisez des éléments psuedo. Alors que de nombreux navigateurs ignorent les images d'arrière-plan, les éléments psuedo avec leur contenu défini sur une image ne sont techniquement PAS des images d'arrière-plan. Vous pouvez ensuite positionner l'image d'arrière-plan à peu près là où l'image aurait dû aller (bien que ce ne soit pas aussi facile ou précis que l'image d'origine).
Un inconvénient est que pour que cela fonctionne dans Chrome, vous devez spécifier ce comportement en dehors de votre requête de média imprimé, puis le rendre visible dans le bloc de requête de média imprimé. Alors, quelque chose comme ça ...
L'inconvénient est que l'image sera souvent téléchargée lors des chargements de page normaux, ajoutant du volume inutile. Vous pouvez éviter cela en utilisant simplement la même image / chemin que vous avez déjà utilisé pour l'image originale visible.
la source
cela fonctionne dans google chrome lorsque vous ajoutez! attribut important à l'image d'arrière-plan assurez-vous d'ajouter d'abord un attribut et réessayez, vous pouvez le faire comme ça
}
la source
Vous pouvez utiliser des bordures pour des couleurs fixes.
et pour le fond dégradé, vous pouvez utiliser:
la source
https://gist.github.com/danomanion/6175687 propose une solution élégante, utilisant une puce personnalisée à la place d'une image de fond:
En l'incluant dans un
bloc, je peux remplacer un logo blanc sur transparent à l'écran, rendu comme image d'arrière-plan, par un logo noir sur transparent pour l'impression.
la source
Vous pouvez faire quelques trucs comme ça:
Dans le body tag:
la source