2009-04-07 9 views
57

Przez cały czas używam Firebug i IE Developer Toolbar do debugowania trudnych problemów CSS. Ale czasami pojawia się podstępny błąd, który pojawia się tylko po przejściu do drukowania strony.Jak można debugować drukowany arkusz CSS?

Jakich technik/narzędzi używasz do diagnozowania takich problemów? Czy istnieje sposób na lepsze wykorzystanie tradycyjnych narzędzi do debugowania CSS w widoku wydruku?

Zaktualizowana: korzystam już z drukarki PDF, aby uniknąć marnowania papieru; moim problemem jest to, że nie mogę kliknąć prawym przyciskiem myszy na wydrukowany DOM. Niektóre inne odpowiedzi poniżej są całkiem pomocne, dziękuję. :-)

+2

lepszą odpowiedź tutaj: http://stackoverflow.com/questions/2452713/suggestions-for-debugging-print-stylesheets –

+0

związane: https://stackoverflow.com/questions/2452713/suggestions-for-debugging- print-stylesheets, https://stackoverflow.com/questions/9540990/using-chromes-element-inspector-in-print-preview-mode/ – vaxquis

Odpowiedz

67

Wystarczy znaleźć komentarz przez lee-penkman o nowej funkcji w Firefoksie here: Naciśnij Shift-F2 w Firefoksie, aby otworzyć konsolę, a następnie wpisz media emulate print. Działa absolutnie świetnie!

+6

To zadziałało dla mnie, gdy zwróciłem uwagę na to, co rzeczywiście powiedziałeś, zamiast zakładać, że wiem. Nie ma tego na konsoli w narzędziach F12, jest to pasek narzędzi programisty. Dokładnie to, czego szukałem. –

+0

wspaniała rada! naprawdę pomocny – banditpanda

+0

Dziękuję, kocham FF i to narzędzie działa dla mnie. –

1

Używam wirtualnej drukarki Adobe PDF, ponieważ jest to najbardziej zbliżona do rzeczywistej drukarki, którą masz, bez marnowania atramentu i papieru.

W każdym razie, zaleca się posiadanie oddzielnego arkusza CSS do wydruków, z dużo prostszą grafiką i mniejszą ilością obrazów używanych tylko do celów projektowych.

+0

Tak, to oddzielny CSS, który próbuję debugować. (Drukarka PDF to dobra wskazówka, często tego używam). –

23

Używam wtyczki WebDeveloper i CSS -> Wyświetlanie CSS według Media Type -> Print, aby wyświetlić CSS tak, jak po wydrukowaniu. Narzędzia inspekcyjne Firebuga współpracują z CSS w postaci filtrowanej przez wtyczkę.

+20

Niestety, widok ten nie przypomina nawet tego, co faktycznie drukuje Firefox (wydaje się, że podczas drukowania używa też stylów ekranowych). Nie znalazłem lepszej opcji niż częste używanie opcji podglądu wydruku podczas edycji stylów w Firebug. – Tgr

+1

Rzeczywiście, myślę, że to dlatego, że nie ma pojęcia stron ... ale przynajmniej można spojrzeć na to bez konieczności podglądu. – gamov

+3

Wygląda na to, że używa TYLKO stylów drukowania. Miłym trikiem jest nie tylko ustawienie określonych typów mediów, ale także ustawienie wszystkich innych arkuszy stylów na media = "all, print". Działa dla mnie :-) – Jeroen

0

Wydrukuj do Microsoft XPS Document Writer, jeśli nie chcesz płacić. Lub użyj SnagIt, jeśli masz fundusze (bezpłatny okres próbny na stronie).

6

Używam Firefox i developer toolbar.

Używam narzędzia do edycji css w czasie rzeczywistym na pasku zadań, warto zmodyfikować swoje css w locie, aby zobaczyć wyniki w czasie rzeczywistym.

Używam również funkcji konspektu, którą div i tym podobne na myszy, na swojej stronie internetowej. Naprawdę pomocne, aby znaleźć div.

Dla problemu drukowania, przejdź do CSS -> Ekran styl CSS przez media -> druk

Istnieje wiele innych narzędzi dostępnych w tym jednym, że prawdopodobnie użyć około 10% to.

Spróbuj może znajdziesz coś przydatnego.

3

Co powiesz na umieszczenie ostatniego wydruku CSS i usunięcie warunku "print" z linku CSS lub instrukcji importowania? Następnie debugujesz CSS drukowania w oknie przeglądarki.

+3

po prostu upewnij się, że ustawiłeś '#body {width: 8.5in; height: 11in;} ' – ZMorek

+0

Genialny pomysł! To było dla mnie niezwykle skuteczne – veeTrain

+0

Nie działa dla mnie w Firefoksie v22. Wyglądał zupełnie inaczej niż rzeczywisty wydruk. – reflexiv

1

Zawsze korzystałem z paska narzędzi programisty stron internetowych (jak opisano w innych odpowiedziach), ale Firebug wydaje się czasami tracić niektóre style. Dodałem zakładkę do mojej przeglądarki i dodałem następujący kod JavaScript jako adres URL zakładki. Teraz mogę po prostu przejść do wydrukowania styl klikając zakładkę:

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());}}})() 

Powyższy kod wyszukuje wszystkie linki arkuszu stylów testy, jeśli są media = druku, a jeśli tak, to zmienia go do mediów = wszystko (i ukrywa wszystkie media = screen, zastępując go media = dontshow) i ponownie ładuje arkusze stylów, dodając token czasu do adresu URL. Podstawowy skrypt przeładowania pochodzi od kogoś innego, dodałem część medialną. To działa doskonale dla mnie!

Byłoby to bardziej czytelne wersja JavaScript URL powyższe wyjaśnienia:

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 oszczędzasz mi dużo czasu i bólu głowy. –

4

W narzędzi chrom deweloperskich (F12 \ Ctrl (Cmd na Macu) + Shift + C): W zakładce emulacji (Z Chrome 32 IMHO) dostępna jest zakładka "Media".

Nie można zaznaczyć pole wyboru emulacji mediów i wybrać nośnik chciałbyś naśladować ('', 'print screen' etc.)

18

W Chrome 51:

Chrome developer tools

Otwarte devtools (CTRL + F12 lub CTRL + SHIFT + I) i kliknij menu ..., kliknij More Tools > Rendering settings, aby otworzyć zakładkę Rendering konsoli programisty (alternatywnie, jeśli konsola jest otwarta, po prostu przejdź do tej karty).

W tej zakładce zaznacz i zaznacz pole wyboru dla Emulate Media: print.

+0

Uwaga: to nie będzie emulować takich rzeczy, jak ukrywanie obrazów/kolorów tła (które spełnia odpowiedź firefox). –