Предложения по отладке таблиц стилей печати? - PullRequest
237 голосов
/ 16 марта 2010

Недавно я работал над таблицей стилей печати для веб-сайта и понял, что не могу найти эффективные способы его настройки. Одно дело иметь цикл перезагрузки для работы с экранной раскладкой:

  • изменить код
  • Команда вкладками
  • перезарядка

но весь этот процесс становится намного труднее, когда вы пытаетесь напечатать:

  • изменить код
  • командная вкладка
  • перезарядка
  • печать
  • косоглазие при предварительном просмотре изображения
  • открыть PDF в предварительном просмотре для дальнейшей проверки

Есть ли здесь инструменты, которые мне не хватает? Есть ли у инспектора WebKit флажок «Притворись, что это носитель с подкачкой»? Есть ли какая-то магия, которую может сделать Firebug ( shudder )?

Ответы [ 11 ]

323 голосов
/ 18 января 2013

Для этого есть опция в инспекторе Chrome.

  1. Откройте инспектор DevTools (mac: Cmd + Shift + C , окна: Ctrl + Shift + C )
  2. Нажмите на Переключить режим устройства значок Toggle device mode button, расположенный в левом верхнем углу панели DevTools. (windows: Ctrl + Shift + M , mac: Cmd + Shift + M ).
  3. Щелкните значок More * more overrides в правом верхнем углу окна просмотра браузера, чтобы открыть ящик devtools.
  4. Затем выберите Media в блоке эмуляции и установите флажок CSS media .

    enter image description here

Это должно сработать.

Обновление: меню изменились в DevTools. Теперь его можно найти, щелкнув меню «три точки» в верхнем правом углу> Дополнительные инструменты> Настройки рендеринга> Эмуляция носителя> Печать.

Источник: Страница Google DevTools *

72 голосов
/ 23 февраля 2011

Я предполагаю, что вы хотите максимально контролировать печатное окно без использования подхода HTML к PDF ... Используйте экран @media для отладки - @media print для окончательного css

Современные браузеры могут дать вам быстрое представление о том, что произойдет во время печати, используя дюйма и точек в формате @media query.

@media screen and (max-width:8.5in) { /* resize your window until the event is triggered */
    html { width:8.5in; }
    body { font: 9pt/1.5 Arial, sans-serif; } /* Roughly 12px font */
 ...
}

Как только ваш браузер отобразит "дюймы", у вас будет лучшее представление о том, чего ожидать. Этот подход должен почти закончить метод предварительного просмотра. Все принтеры будут работать с блоками pt и in, а использование метода @media позволит вам быстро увидеть, что произойдет, и соответствующим образом отрегулировать. Firebug (или эквивалент) абсолютно ускорит этот процесс. Когда вы добавили свои изменения в @media, у вас есть весь код, необходимый для связанного файла CSS, с использованием атрибута media = "print" - просто скопируйте / вставьте правила экрана @media в указанный файл.

Удачи. Сеть не была создана для печати. Создание решения, которое доставляет весь ваш контент, стили, равные тем, которые видны в браузере, иногда могут быть невозможны. Например, гибкий макет для преимущественно 1280 x 1024 аудитории не всегда легко переводится на красивую и аккуратную лазерную печать 8,5 x 11.

W3C ссылка на гнойное: http://www.w3.org/TR/css3-mediaqueries/

19 голосов
/ 03 февраля 2016

Chrome 48 Вы можете отлаживать стили печати на вкладке Рендеринг .

Щелкните значок меню в правом верхнем углу инспектора и Настройки рендеринга .

Редактировать
Для Chrome 58 местоположение изменилось на Веб-инспектор> Меню> Дополнительные инструменты> Рендеринг

19 голосов
/ 21 марта 2015

В Chrome v41 он есть, но в немного другом месте.

enter image description here

16 голосов
/ 28 февраля 2011

Существует простой способ отладки таблицы стилей печати без переключения какого-либо атрибута медиа в вашем HTML-коде (конечно, как уже отмечалось, это не решает проблему ширины / страниц):

  • Используйте расширение Firefox + Web Developer.
  • В меню веб-разработчика выберите CSS / Показать CSS по типу носителя / Печать
  • Вернитесь в меню Web Developer, выберите Options / Persist Features

Теперь вы просматриваете печатный CSS и можете неограниченно обновлять свою страницу. Когда вы закончите, снимите флажок «Persist Features» и перезагрузите компьютер, вы снова получите CSS экрана.

НТН.

11 голосов
/ 17 февраля 2017

Пользовательский интерфейс Chrome другой снова с v53.

Мне не нужно часто использовать эту функцию, но всякий раз, когда я это делаю, мне всегда нужно выяснить, где находится Chromeкоманда переместила его с тех пор, как в последний раз я записывал циклы, пытаясь отследить его.

Обратите внимание, что это меню ... в Панель инструментов разработчика , а не the ..Меню на панели браузера Chrome.

Printer preview as of v53 on MacOS

Теперь прокрутите вниз в разделе рендеринга.Это часто ниже сгиба.

8 голосов
/ 12 февраля 2015

После ответа rflnogueira текущие настройки Chrome (40.0. *) Будут выглядеть следующим образом:

chrome print css emulation

5 голосов
/ 16 марта 2010

Просто покажите таблицу стилей печати в браузере, используя media="screen" во время отладки. В режиме предварительного просмотра печати используется тот же механизм рендеринга, что и в обычном режиме просмотра, поэтому с его помощью можно получить точные результаты.

0 голосов
/ 01 марта 2011

enter image description here

В DreamWeaver есть панель инструментов, которая отображает практически любой вариант рендеринга: экран, печать, портативные носители, проекционный экран, телевизионные носители, таблицы стилей desitn time и т. д. Это то, что я использую, особенно потому, что: мгновенно показывает предварительный просмотр одним нажатием кнопки.

0 голосов
/ 28 февраля 2011

Я использую макросы для многократной отправки нажатий клавиш и мыши. Под Windows AutoHotKey является отличным программным обеспечением, а под OS X вы можете прочитать об Automator вроде альтернативный AHK для OsX .

В Windows (замените Ctrl на Cmd в OS X) «Ctrl-s / переключиться на окно Fx, где бы оно ни было в списке открытых окон / Ctrl-r», привязанное к 1 неиспользуемой клавише, позволяет избежать разочарований от неинтересных задач и в конечном итоге спаси мои руки от RSI :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...