2009-04-07 20 views
57

Uso sempre Firebug e IE Developer Toolbar per il debug di problemi complessi di CSS. Ma a volte compare un bug insidioso che appare solo quando vai a stampare la pagina.Come si esegue il debug di CSS stampabili?

Quali tecniche/strumenti utilizzate per diagnosticare problemi come questo? Esiste un modo per sfruttare maggiormente gli strumenti di debug CSS tradizionali nella visualizzazione di stampa?

Aggiornamento: utilizzo già una stampante PDF per evitare sprechi di carta; il mio problema è che non posso fare clic destro sul DOM stampato. Alcune delle altre risposte qui sotto sono abbastanza utili, grazie. :-)

+2

Risposta migliore qui: http://stackoverflow.com/questions/2452713/suggestions-for-debugging-print-stylesheets –

+0

correlati: https://stackoverflow.com/questions/2452713/suggestions-for-debugging- fogli di stile di stampa, https://stackoverflow.com/questions/9540990/using-chromes-element-inspector-in-print-preview-mode/ – vaxquis

risposta

67

appena trovato un commento di lee-penkman su una nuova funzione in Firefox here: Press Shift-F2 in Firefox per aprire la console, quindi immettere media emulate print. Funziona assolutamente alla grande!

+6

Questo ha funzionato alla perfezione una volta che ho prestato attenzione a ciò che hai effettivamente detto di fare piuttosto che presumere che lo sapessi. Questo non è nella console degli strumenti F12, è la barra degli strumenti degli sviluppatori. Esattamente quello che stavo cercando. –

+0

ottimo consiglio! veramente utile – banditpanda

+0

Grazie, amo FF e questo strumento funziona per me. –

1

Io uso la stampante virtuale Adobe PDF, perché è la cosa più vicina a una vera stampante che otterresti, senza spreco di inchiostro e carta.

In ogni caso, si consiglia di avere un CSS separato per le stampe, con una grafica molto più semplice e meno delle immagini che si utilizzano solo per scopi di progettazione.

+0

Sì, è il CSS separato che sto cercando di eseguire il debug. (La stampante PDF è un buon consiglio, io la uso molto.) –

23

Uso il plug-in WebDeveloper e il CSS -> Visualizza CSS per tipo di supporto -> Stampa per visualizzare il CSS come farebbe una volta stampato. Le utilità di ispezione di Firebug funzionano con il CSS come filtrato dal plugin.

+20

Purtroppo, quella vista non assomiglia neanche lontanamente a ciò che Firefox effettivamente stampa (sembra che utilizzi anche gli stili solo su schermo durante la stampa). Non ho trovato alcuna opzione migliore di un uso frequente dell'opzione di anteprima di stampa durante la modifica degli stili in Firebug. – Tgr

+1

In effetti, penso che sia perché non c'è la nozione di pagine ... ma almeno, puoi dare un'occhiata a questo senza doverlo vedere in anteprima. – gamov

+3

Sembra utilizzare SOLO stili di stampa. Un bel trucco è non solo impostare i tuoi specifici tipi di media, ma anche impostare tutti gli altri fogli di stile su media = "tutto, stampa". Funziona per me :-) – Jeroen

0

Stampa su Microsoft XPS Document Writer se non si desidera pagare denaro. Oppure usa SnagIt se hai i fondi (prova gratuita sul sito).

6

Io uso Firefox e lo developer toolbar.

Io uso lo strumento di modifica css in tempo reale nella barra delle applicazioni, è piuttosto utile modificare i css al volo per vedere i risultati in tempo reale.

Io uso anche la funzione di struttura, che il div e cose del genere sul mouse sopra, sul tuo sito web. Davvero utile per trovare div.

Per il problema di stampa, vedere CSS -> Display di stile CSS da parte dei media -> stampa

Ci sono un sacco di altri strumenti disponibili in questo, probabilmente uso circa il 10% di esso.

Prova a trovare qualcosa di utile.

3

Che ne dici di elencare la stampa CSS e rimuovere la condizione di "stampa" dal tuo link CSS o dalla dichiarazione di importazione? Quindi esegui il debug del CSS di stampa nella finestra del browser.

+3

devi solo assicurarti di impostare '#body {width: 8.5in; height: 11in;} ' – ZMorek

+0

Idea brillante! Questo è stato estremamente efficace per me – veeTrain

+0

Non ha funzionato per me in Firefox v22. Sembrava molto diverso dalla stampa attuale. – reflexiv

1

Ho sempre utilizzato la barra degli strumenti di sviluppo Web (come descritto nelle altre risposte), ma Firebug sembra perdere alcuni stili di volta in volta. Così ho aggiunto un segnalibro al mio browser e aggiunto il seguente Javascript come URL del segnalibro. Ora posso semplicemente passare a stile di stampa facendo clic sul segnalibro:

javascript:(function(){var%20h,a,f;a=document.getElementsByTagName('link');for(h=0;h<a.length;h++){f=a[h];if(f.rel.toLowerCase().match(/stylesheet/)&&f.href&&(f.media=='print'||f.media=='screen')){var%20g=f.href.replace(/(&|%5C?)forceReload=\d+/,'');if(f.media.toLowerCase().match(/screen/))f.media="dontshow";if(f.media.toLowerCase().match(/print/))f.media="all";f.href=g+(g.match(/\?/)?'&':'?')+'forceReload='+(new%20Date().valueOf());}}})() 

Il codice trova sopra tutti i link fogli di stile, i test se si tratta di supporti = stampa e in tal caso si trasforma in un supporto = tutti (e nasconde tutti i media = schermo sostituendolo con media = dontshow) e ricarica i fogli di stile aggiungendo un token di tempo all'URL. Lo script di base di ricarica è di qualcun altro, ho aggiunto la parte multimediale. Questo funziona benissimo per me!

Questa sarebbe la versione più leggibile del URL JavaScript sopra per una spiegazione:

javascript: (function() { 
    var h, a, f; 
    a = document.getElementsByTagName('link'); 
    for (h = 0; h < a.length; h) { 
     f = a[h]; 
     if (f.rel.toLowerCase().match(/stylesheet/) && f.href && (f.media == 'print' || f.media == 'screen')) { 
      var g = f.href.replace(/(&|\?)forceReload=\d /, ''); 
      if (f.media.toLowerCase().match(/screen/)) f.media = "dontshow"; 
      if (f.media.toLowerCase().match(/print/)) f.media = "all"; 
      f.href = g(g.match(/\?/) ? '&' : '?') 
      'forceReload=' (new Date().valueOf()); 
     } 
    } 
})() 
+1

thx u risparmiare un sacco di tempo e mal di testa. –

4

In strumenti di Chrome per sviluppatori (F12 \ Ctrl (cmd su Mac) + Maiusc + C): Nella scheda di emulazione (Da Chrome 32 in poi IMHO), c'è una scheda per "Media".

Non c'è possibile controllare la casella di controllo di emulazione dei media e selezionare il supporto che si desidera emulare ('print', 'schermo', ecc)

18

In Chrome 51:

Chrome developer tools

Aperto devtools (CTRL + F12 o CTRL + SHIFT + I) e fare clic sul menu ..., fare clic su More Tools > Rendering settings per aprire la scheda Rendering della console per sviluppatori (in alternativa, se la console è aperta, accedere a questa scheda).

In questa scheda, selezionare e selezionare la casella per Emulate Media: print.

+0

Attenzione: questo non emula cose come nascondere immagini/colori di sfondo (come fa la risposta firefox). –

Problemi correlati