J'essaie d'imprimer une page. Dans cette page, j'ai donné une couleur de fond à un tableau. Lorsque je visualise l'aperçu avant impression en chrome, il ne prend pas la propriété de couleur d'arrière-plan ...
J'ai donc essayé cette propriété:
-webkit-print-color-adjust: exact;
mais il ne montre toujours pas la couleur.
.vendorListHeading {
background-color: #1a4567;
color: white;
-webkit-print-color-adjust: exact;
}
<div class="bs-docs-example" id="soTable" style="padding-top: 10px;">
<table class="table" style="margin-bottom: 0px;">
<thead>
<tr class="vendorListHeading" style="">
<th>Date</th>
<th>PO Number</th>
<th>Term</th>
<th>Tax</th>
<th>Quote Number</th>
<th>Status</th>
<th>Account Mgr</th>
<th>Shipping Method</th>
<th>Shipping Account</th>
<th style="width: 184px;">QA</th>
<th id="referenceSO">Reference</th>
<th id="referenceSO" style="width: 146px;">End-User Name</th>
<th id="referenceSO" style="width: 118px;">End-User's PO</th>
<th id="referenceSO" style="width: 148px;">Tracking Number</th>
</tr>
</thead>
<tbody>
<tr class="">
<td>22</td>
<td>20130000</td>
<td>Jim B.</td>
<td>22</td>
<td>510 xxx yyyy</td>
<td>[email protected]</td>
<td>PDF</td>
<td>12/23/2012</td>
<td>Approved</td>
<td>PDF</td>
<td id="referenceSO">12/23/2012</td>
<td id="referenceSO">Approved</td>
</tr>
</tbody>
</table>
</div>
google-chrome
css
printing
webkit
ghost_dad
la source
la source
Réponses:
La propriété CSS Chrome
-webkit-print-color-adjust: exact;
fonctionne correctement.Cependant, il peut souvent être difficile de s'assurer que vous disposez du bon CSS pour l'impression. Plusieurs mesures peuvent être prises pour éviter les difficultés que vous rencontrez. Tout d'abord, séparez tous vos CSS d'impression de votre CSS d'écran. Cela se fait via les touches
@media print
et@media screen
.Souvent, la simple configuration de
@media print
CSS supplémentaire ne suffit pas, car vous avez toujours tous vos autres CSS inclus lors de l'impression. Dans ces cas, vous devez simplement être conscient de la spécificité CSS car les règles d'impression ne gagnent pas automatiquement contre les règles CSS non imprimables.Dans votre cas, le
-webkit-print-color-adjust: exact
fonctionne. Cependant, vosbackground-color
définitions de couleurs et sont battues par d'autres CSS avec une spécificité plus élevée.Bien que je n'approuve pas l' utilisation
!important
dans presque toutes les circonstances, les définitions suivantes fonctionnent correctement et exposent le problème:Voici le violon (et intégré pour faciliter la prévisualisation de l'impression).
la source
Print preview failed.
j'ouvre le violon, je reçois le message dans Chrome v47.0.2526.106Cette propriété CSS est tout ce dont vous avez besoin, cela fonctionne pour moi ... Lors de la prévisualisation dans Chrome, vous avez la possibilité de la voir en noir et blanc ( Couleur: Options - Couleur ou Noir et blanc ), donc si vous n'avez pas cette option, alors Je suggère de saisir cette extension Chrome et de vous faciliter la vie:
https://chrome.google.com/webstore/detail/print-background-colors/gjecpgdgnlanljjdacjdeadjkocnnamk?hl=en
Le site que vous avez ajouté sur fiddle en a besoin dans votre css d'impression média (il vous suffit de l'ajouter ...
media print CSS dans le corps:
MISE À JOUR OK donc votre problème est bootstrap.css ... il a un support d'impression de média ainsi que vous .... vous supprimez cela et cela devrait vous donner de la couleur .... vous devez soit faire le vôtre ou rester avec bootstraps print css.
Lorsque je clique sur imprimer, je vois la couleur .... http://jsfiddle.net/rajkumart08/TbrtD/1/embedded/result/
la source
@media print { body {margin:0; padding:0; line-height: 1.4em; word-spacing:1px; letter-spacing:0.2px; font: 12px Arial, Helvetica,"Lucida Grande", serif; color: #000;}....
vous devez l'ajouter là-bas ...Chrome ne rendra pas la couleur d'arrière-plan ou plusieurs autres styles lors de l'impression si le paramètre de graphique d'arrière-plan est désactivé.
Cela n'a rien à voir avec css, @media ou la spécificité. Vous pouvez probablement pirater votre chemin, mais le moyen le plus simple d'obtenir du chrome pour afficher la couleur d'arrière-plan et d'autres graphiques est de cocher correctement cette case sous Plus de paramètres.
la source
J'avais juste besoin d'ajouter l'
!important
attribut sur la balise background-color pour qu'il apparaisse, je n'avais pas besoin de la partie webkit:background-color: #f5f5f5 !important;
la source
Si vous utilisez le bootstrap ou tout autre CSS tiers, assurez-vous de ne spécifier l'écran du support que sur celui-ci, afin de pouvoir contrôler le type de support d'impression dans vos propres fichiers CSS:
la source
Votre CSS doit être comme ceci:
la source
POUR CEUX QUI UTILISENT BOOTSTRAP.CSS, c'est la solution!
J'ai essayé toutes les solutions et elles ne fonctionnaient pas ... jusqu'à ce que je découvre que bootstrap.css avait un super ennuyeux
@media print
qui réinitialise toutes vos couleurs, couleurs d'arrière-plan, ombres, etc ...Donc, supprimez cette section de bootstrap.css (ou bootstrap.min.css)
Ou remplacez ces valeurs dans le CSS de la page que vous souhaitez imprimer par vous-même
@media print
la source
Utilisez ce qui suit dans votre
@media print
feuille de style.Voici quelques éléments à noter:
Voir mon violon pour une démonstration plus détaillée.
la source
Êtes-vous sûr que c'est un problème CSS? Il existe des messages sur Google concernant ce problème: http://productforums.google.com/forum/#!category-topic/chrome/discuss-chrome/eMlLBcKqd2s
Cela peut être lié au processus d'impression. Sur safari, qui est également un kit Web, il y a une case à cocher pour imprimer des images et des couleurs d'arrière-plan dans la boîte de dialogue de l'imprimante.
la source
Si vous utilisez IE, allez dans l'aperçu avant impression (clic droit sur le document -> aperçu avant impression), allez dans les paramètres et il y a l'option "imprimer la couleur et les images d'arrière-plan", sélectionnez cette option et essayez.
la source
Il y a un style dans les fichiers CSS d'amorçage sous @media print {* ,: après,: avant ....} qui a des styles de couleur et d'arrière-plan étiquetés! Important, qui suppriment toutes les couleurs d'arrière-plan sur tous les éléments. Tuez ces deux morceaux de CSS et cela fonctionnera.
Bootstrap prend la décision d'exécution que vous ne devriez jamais avoir de couleur d'arrière-plan dans les impressions, vous devez donc modifier leur CSS ou avoir un autre style! Important qui a une priorité plus élevée. Bon travail bootstrap ...
la source
J'ai utilisé la réponse de purgatory101 mais j'ai eu du mal à conserver toutes les couleurs (icônes, arrière-plans, couleurs de texte, etc.), en particulier le fait que les feuilles de style CSS ne peuvent pas être utilisées avec des bibliothèques qui modifient dynamiquement les couleurs des éléments DOM. Voici donc un script qui modifie les styles des éléments (
background-colour
etcolour
) avant l'impression et efface les styles une fois l'impression terminée. Il est utile d'éviter d'écrire beaucoup de CSS dans une@media print
feuille de style car cela fonctionne quelle que soit la structure de la page.Il existe une partie du script spécialement conçue pour conserver la couleur des icônes FontAwesome (ou tout élément qui utilise un
:before
sélecteur pour insérer du contenu coloré).JSFiddle montrant le script en action
Compatibilité: fonctionne dans Chrome, je n'ai pas testé d'autres navigateurs.
Et puis modifiez la
window.print
fonction pour lui faire définir les styles avant l'impression et les réinitialiser après.La partie qui trouve des chemins d'icônes pour créer CSS pour: avant les éléments est une copie de cette réponse SO
la source
var
dewindow
votre dernier extrait de code)Vous pouvez également utiliser la
box-shadow
propriété.la source
si vous utilisez Bootstrap . utilisez simplement ce code dans votre fichier css personnalisé. Bootstrap supprime toutes vos couleurs dans l'aperçu avant impression.
la source
Si vous téléchargez Bootstrap sans l'option "Print media styles", vous n'aurez pas ce problème et vous n'aurez pas à supprimer manuellement le code "@media print" dans votre fichier bootstrap.css.
la source
La meilleure solution pour cela si vous utilisez le bootstrap, il suffit donc de supprimer @media print {} tout le code à l'intérieur. et activer les graphiques d'arrière-plan à partir de plus de paramètres tout en prenant un aperçu avant impression.
la source
Je double charge mon fichier source css externe et change le media = "screen" en media = "print" et toutes les bordures de ma table ont été affichées
Essaye ça :
la source