2009-12-26 10 views
7

ho td in questo modo:TDs colore di sfondo non è visibile in anteprima di stampa

<td align="left" bgcolor="#FF0000"> 

Nei browser, c'è un colore di sfondo rosso applicato ad esso, ma quando vedo anteprima di stampa di questo, non c'è colore rosso sullo sfondo. anche il colore del carattere è bianco ma viene anche convertito in bianco quando viene visualizzato in anteprima.

Qualcuno sa quale può essere la ragione?

Grazie

risposta

4

La stampa di colori di sfondo è supportato modo diverso da ogni browser e spesso è disattivata per impostazione predefinita. Ad esempio, in Safari, è un'opzione nella finestra di dialogo di stampa denominata "Stampa sfondi". Non sono sicuro di dove sia l'opzione in altri browser.

0

Provare a utilizzare CSS se è possibile e se lo sfondo non funziona con la versione di stampa specificare un documento di stampa CSS.

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

CSS di base qui:

td{ background-color:#FF0000; }

+0

Come menzionato da @ doug-neiner questo non funziona su tutti i browser, solo il CSS non funzionerà –

+0

Non vedo alcuna menzione del CSS da @ doug-neiner. L'OP chiedeva anche del colore del carattere durante la stampa. Hai segnato questo giù? – Gazzer

+0

Questo non funziona. Sia Chrome che FF ignorano i colori di sfondo CSS durante la stampa. –

12

Per rendere browser WebKit (Safari, Google Chrome) stampare l'immagine di sfondo o il colore si dovrebbe aggiungere il seguente stile CSS all'elemento:

-webkit-print-color-adjust: exact; 
+0

Funziona perfettamente, grazie Marco! –

3

Mi sono imbattuto in questo problema e credo di avere una soluzione. Originariamente ho fatto questo con un tag H1, ma poi usato lo stesso codice per un TD

h1 { 
    background-color:#404040; 
    background-image:url("img/404040.png"); 
    background-repeat:repeat; 
    box-shadow: inset 0 0 0 1000px #404040; 
    border:30px solid #404040; 
    height:0; 
    width:100%; 
    color:#FFFFFF !important; 
    margin:0 -20px; 
    line-height:0px; 
} 

Qui ci sono un paio di cose da notare:

  • background-color è il fallback assoluto ed è lì per i posteri soprattutto.
  • background-image utilizza un pixel 1px x 1px di # 404040 trasformato in un PNG. Se l'utente ha immagini abilitate può funzionare, in caso contrario ...
  • Imposta l'ombra della casella, se non funziona ...
  • Bordo = 1/2 altezza e/o larghezza desiderata della casella , tinta unita. Nell'esempio sopra volevo una scatola con altezza 60px.
  • Azzerare l'altezza/larghezza a seconda di cosa si sta controllando nell'attributo border.
  • Il colore del font verrà impostato su nero a meno che non venga utilizzato! Importante
  • Imposta l'altezza della riga su 0 per risolvere il problema per la casella che non ha dimensione fisica.
  • Marca e ospitare i propri maledette PNG;)

Vedi il mio fiddle per una dimostrazione più dettagliata.

Problemi correlati