Пропозиції щодо налагодження таблиць стилів друку?


238

Нещодавно я працював над таблицею стилів друку для веб-сайту, і зрозумів, що втрачаю ефективні способи його налаштування. Одне з них має мати цикл перезавантаження для роботи на екранній макеті:

  • змінити код
  • команда-вкладка
  • перезавантажити

але весь цей процес стає набагато складнішим при спробі друку:

  • змінити код
  • команда-вкладка
  • перезавантажити
  • друк
  • примружитися до зображення для попереднього перегляду друку
  • відкрити PDF у Попередньому перегляді для подальшої перевірки

Чи є тут інструменти, які мені не вистачає? Чи має інспектор WebKit прапорець "Зробити вигляд, що це заздалегідь підказка"? Чи є якась магія, яку Firebug ( здригання ) може зробити?


4
Як щодо функції "Попередній перегляд друку" браузера, яка підтримує її (наприклад, Firefox)? Я (в основному точно) налагодив деякі веб-сторінки для друку з ним.
Halil Özgür


3
У Firefox відкрийте «Панель інструментів розробника» за допомогою Shift + F2, введіть «мультимедійний емулятор друку» (або «ему» + Tab + «друк»), введіть.
Марчелло Нуччо


@MarcelloNuccio Це повинна бути відповідь. stackoverflow.com/a/28873496/1696030 отримав досить багато позитивних голосів для порівняння. "Панель інструментів розробника" трохи вводить в оману, оскільки це інтерфейс командного рядка.
Волкер Е.

Відповіді:


327

Для інспектора Chrome є варіант для цього.

  1. Відкрийте інспектор DevTools (mac: Cmd+ Shift+ C, windows: Ctrl+Shift + C)
  2. Клацніть піктограму режиму Toggle deviceПереключити кнопку режиму пристрою , розташовану у верхньому лівому куті панелі DevTools. (windows: Ctrl+ Shift+ M, mac: Cmd+Shift + M).
  3. Клацніть на Додаткові параметри більше відміни іконку " у верхньому правому куті вікна перегляду браузера, щоб відкрити ящик для розробників.
  4. Потім виберіть Медіа у вікні емуляції та встановіть прапорець CSS-медіа .

    введіть тут опис зображення

Це повинно зробити трюк.

Оновлення: Меню змінили в DevTools. Тепер його можна знайти, натиснувши на меню "три крапки" у верхньому правому куті> Інші інструменти> Налаштування візуалізації> Емуляція носія> друк.

Джерело: сторінка Google DevTools *


5
Дякую, це те, що я шукав, не зміг його знайти: / Хоча ярлик більше не працює. Я просто роблю значок F12 + шестерні в правому нижньому куті, потім налаштування знаходиться на вкладці Переозначення,
Aurelien

18
на жаль, це не на 100% точність :(
maazza

9
У Chrome 32.0.1700.14 beta-m Auraвідсутня програма "Емуляція CSS-медіа [print]" :(
Rocket Hazmat

11
Цю відповідь потрібно виправити. Як і в Chrome 48, емулятор таблиць стилів друку перебуває не під "Емуляція", а під "Візуалізація".
chharvey

13
Меню трьох крапок (справа) в інспекторі> Інші інструменти> Налаштування візуалізації> Емуляція носія> print
allicarn

74

Я припускаю, що ви хочете якомога більше контролювати надруковане вікно, не використовуючи підхід 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 х 1024 аудиторій не завжди легко переводить на приємний і акуратний 8,5 х 11 лазерний друк.

Посилання на W3C про помилку: http://www.w3.org/TR/css3-mediaqueries/


Просто хотів прокоментувати, що цей метод досить розумний. Набагато простіше трохи змінити розмір вікна, щоб «переключити» стилі друку, ніж використовувати функцію попереднього перегляду друку. Хоча іноді все ще доводиться робити це для сумісності IE і подібного, це чудово підходить для початкової ітерації стилів друку.
Чакнельсон

@Chuck. Спасибі Людина. Гей, я зрозумів, що моя демонстрація була офлайн, тому я створив загадку для цього. jsfiddle.net/dNEmT
Доусон

20

Chrome 48 ви можете налагоджувати стилі друку на вкладці Візуалізація .

Клацніть піктограму меню вгорі праворуч від інспектора та параметрів візуалізації .

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


4
Chrome 49: F12 (консоль розробника) -> ESC (консоль) -> Візуалізація -> Емуляція друкованих носіїв
користувач1477388

19

У Chrome v41 він є, але в дещо іншому місці.

введіть тут опис зображення


3
У v53 він замість цього знаходиться на вкладці Візуалізація, внизу є прапорець Емуляція медіа, який дозволить вибрати спадне меню, у якому ви можете вибрати Друк, подібно до наданого скріншоту
Джеймс Грей

16

Існує простий спосіб налагодити таблицю стилів друку, не перемикаючи атрибут медіа у вашому HTML-коді (звичайно, як зазначалося, це не вирішує проблему з шириною / сторінками):

  • Використовуйте розширення Firefox + Web Developer.
  • У меню Веб-розробник виберіть CSS / Відображення CSS за типом носія / Друк
  • Поверніться до меню веб-розробників, виберіть Опції / Зберегти функції

Тепер ви переглядаєте CSS для друку, і ви можете перезавантажити сторінку на невизначений термін. Як тільки ви закінчите, зніміть прапорець "Персистентські функції" та перезавантажте, ви знову отримаєте екранну CSS.

HTH.


7
робить істотно відмінним від попереднього перегляду друку можливо, це химерність у моєму css. у будь-якому випадку це не вирішує проблему. спасибі, хоча.
heartpunk

Так, зовсім інше для мене теж. Я дотримувався цієї jsfiddle ( jsfiddle.net/2wk6Q/3 ) і попередній перегляд друку показує сторінки з червоними полями, але це зовсім інше.
подвійність_

1
Треба сказати, що цей «спосіб вирішення» найкраще працює для мене. Можливо, мені пощастило, і тому існують лише невеликі відмінності між рідним екраном друку та екраном друку веб-розробників, але це, безумовно, допомогло мені з'ясувати, чому з'являються прогалини і що найважливіше - я можу перейти через код з firebug і подивитися, що відбувається on
Ерік Черпняк

13

Користувацький інтерфейс Chrome знову відрізняється від v53.

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

Зауважте, що це ... меню на панелі інструментів Dev, а не меню ... у панелі браузера Chrome.

Попередній перегляд принтера станом на v53 на MacOS

Тепер прокрутіть вниз у розділі Візуалізація. Це часто внизу складки.


1
Ви щойно врятували мені дні налагодження print.css. Ти надзвичайний!
зазорники

8

Після відповіді від rflnogueira, поточні налаштування Chrome (40.0. *) Виглядатимуть нижче:

емуляція css print print


На визначення вкладки "Медіа" мені знадобилося трохи часу. Я постійно шукав це на вкладці "Пристрій".
Лорін Ріверс

5

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


14
За винятком того, що в звичайному режимі перегляду немає сторінок, тому я не маю уявлення про те, як протікатиме вміст. Нормальний режим перегляду має ширину певної кількості пікселів, тоді як сторінка має ширину певної кількості дюймів або сантиметрів. Існують принципові незалежні від реалізації відмінності між екраном і друком. Налагодження між ними - це те, про що я хочу.
Джим Пульс

1
На хромованій рендерінгу зовсім інше, використовуючи лише цю пропозицію. Не буде працювати.
heartpunk

Ширину "сторінки" не важко прибити, але висота справді складна. І браузери, і принтери будуть грати роль у головній болі 11 дюймів. Веб-сторінки мають суцільну довжину. Без гарантії вихідного типу пристрою та веб-переглядача, я не думаю, що ви коли-небудь натискатимете його на позначку. Використання підходу HTML до PDF працювало б, але це виходить за рамки вашого питання.
Доусон

3

2019 рік - оновлені інструкції

  1. Відкрийте інспектор Chrome
    • З Mac => option+ command+i
    • З Windows =>F12
  2. Клацніть на маленьких 3 крапки, customize and control devTools введіть тут опис зображення

  3. Виберіть More Tools

  4. Виберіть Rendering

  5. Прокрутіть униз до Emulate CSS Media

  6. Виберіть printстрілку вниз

введіть тут опис зображення


0

Якщо у вас є функція друку, яка переписує вміст сторінки в нове вікно з посиланням на ваш аркуш стилю друку, ви отримаєте набагато краще уявлення про те, як виглядатиме його на папері, і ви зможете налагодити його з подобами firebug теж.

Ось приклад того, як це можна зробити за допомогою JavaScript / jquery

        $("#Print").click(function () {
            var a = window.open('', '', 'scrollbars=yes,width=1024,height=768');
            a.document.open("text/html");
            a.document.write("<html><head>");
            a.document.write('<link rel="stylesheet" href="css/style.css" />');
            a.document.write('<link rel="stylesheet" href="css/print.css" />');
            a.document.write("</head><body>");
            a.document.write($('#Content').html());
            a.document.write('</body></html>');
            a.document.close();
            a.print();
        });

2
Проблема такого підходу полягає в тому, що якщо користувач просто вибере "Друк ..." у своєму браузері, ця функція JavaScript ніколи не буде викликатися.
Кен Лю

вам не потрібно відображати функцію друку користувачеві, ви можете просто використовувати його для налагодження, якщо хочете
Blowsie

Це надмірно розроблене рішення для того, що браузер уже робить. Просто використовуйте a media="print"і media="screen"відповідно для своїх таблиць стилів і просто використовуйте меню браузера або клавіші комбінацій, щоб викликати попередній перегляд друку. (У цьому випадку це не відрізняється від відкриття спливаючого вікна) І якщо ви просто налагоджуєте, застосуйте media="screen"атрибут до своїх стилів друку, поки ви не закінчите налагодження.
ORyan

-1

введіть тут опис зображення

У DreamWeaver є панель інструментів, яка показує практично будь-який потрібний параметр візуалізації: екран, друк, портативні носії інформації, екран проекції, телевізійний носій, аркуші стилів часу та ін. Це те, що я використовую, особливо тому, що він: миттєво показує попередній перегляд з 1 одним натисканням кнопки.


1
Добре знати, але це вимагатиме використання іншого механізму візуалізації, ніж те, що ми розробляємо, і все ж вимагає більшого перезавантаження. спасибі, хоча.
heartpunk

1
Вже в 2011 році це було власником програмного забезпечення, призначеного лише для придбання, лише на обмежених платформах, за які вам потрібно було заплатити, щоб отримати потрібну функціональність для налагодження відкритої мережі.
Волкер Е.

-7

Я використовую макроси, щоб надсилати натискання клавіш і миші кілька разів. У Windows, AutoHotKey - це чудове програмне забезпечення, а в OS X ви можете прочитати про автоматизатор на зразок альтернативного AHK для OsX .

У Windows (замініть Ctrl на Cmd на OS X) "Ctrl-s / переключиться на вікно Fx, де б воно не було у списку відкритих вікон / Ctrl-r", пов'язане з 1 невикористаним ключем, уникне розладу від нецікавих завдань і в кінцевому підсумку врятує мою зброю від RSI :)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.