Firefox печатает только 1-ю страницу



Я работаю над удобным для печати css для веб-сайта. Он отлично просматривает / печатает в IE, но Firefox (версия 3.6) только просматривает/печатает 1-ю страницу.



Знает ли кто-нибудь о чем-либо, что обычно вызывает это? Разметка довольно сложная, поэтому я не знаю, с чего начать!



Спасибо.



Edit



Это решение только ухудшило ситуацию.



Https://support.mozilla.com/ga-IE/questions/667285#answer-115916



Выглядит так: печать просто засасывает FF. Клиенту не понравится это слышать-надеюсь, они не используют FF!

827   13  

13 ответов:

В Firefox 3 была исправлена давняя ошибкас печатью абсолютно позиционированных элементов .

Проблемы с недостающими страницами отслеживаются в bug 521204 (просмотрите список "зависит от"). Есть ли у вас рамки или длинные таблицы на странице, которую вы пытаетесь напечатать?

И да, печать в Firefox является неполной собственностью, жаль, что вам приходится иметь с ней дело...

Я только что узнал, что из элемента с

display:inline-block; 
Напечатана только первая страница, а все остальное скрыто. установка этого значения в
display:block;

Было решением в моем случае.

Если вы не хотите проходить через весь ваш код, это единственная вещь, которую я нашел, которая работает для меня, не испортив все мои другие CSS:

@media print {
  body {
    overflow: visible !important;
  }
}

У меня была та же проблема. Оказывается, корневой тег имел display: flex на нем. После изменения этого значения на display: block, остальное содержимое было отображено. Я бы рекомендовал подняться по вашему дереву DOM и проверить каждый атрибут display.

Я перепробовал дюжину исправлений для этого, и, в конце концов, все, что мне было нужно, это:

@media print {
  body {
    display: block;
  }
}

У меня была та же проблема, потому что height из body установлено в 100%, после того, как я модифицировал в height: auto в моем print.css, это сработало.

@media print {
  body {
    height: auto;
  }
}

После многих исследований и проб и ошибок я нашел эту статью по списку отдельно. Я был настроен скептически, потому что он такой старый, но в нем говорится, что:

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

Поскольку у меня есть большой плавучий контейнер, я решил попробовать. Итак, я сделал микс из других ответов и этой статьи и придумал это:
body { 
    overflow: visible !important; 
    overflow-x: visible !important; 
    overflow-y: visible !important; 
}

/*this is because I use angular and have this particular layout*/
body > .fade-ng-cloak { 
    height: 100%; 
    display: block;
    flex: none;
    float: none;
}
.l-content,
.l-sidebar {
    float: none;
}

Итак, в основном:

  1. установка тела в overflow: visible
  2. установка элементов, которые ведут себя как обертки для display: block, устранение всех стилей flex и сброс высоты при необходимости
  3. исключить float на длинных контейнерах
Эта смесь сработала на меня! Я так счастлива, что решила поделиться :)

Если вы не можете преодолеть ограничения Firefox на печать, вы можете преобразовать страницу в PDF. Если вы готовы к этому варианту, Prince XML - это библиотека, которую я настоятельно рекомендую. Он имеет очень хорошую поддержку CSS, включая печатные носители.

Firefox, конечно, не отстой в любом отношении. Однако иногда он придерживается более строгих стандартов, чем другие браузеры. Короче говоря, у меня была та же проблема, т. е. firefox печатал (также просматривал) только первые 2 страницы многостраничного отчета, построенного с помощью длинной таблицы, созданной моей веб-страницей. После некоторой отладки я обнаружил, что включил Большую часть содержимого отчета в элемент span со стилем {display: inline-block;} среди прочего вещи. Как только я удалил, что пагинация была совершенной...

У меня была та же проблема, и Я заменил позицию с position:relative на position: absolute с height: 100% сверху вниз.

Я попытался добавить @media print, как было предложено в этом ответе в качестве определения style к элементу <body> страницы, но Firefox (60.0 (64-бит), Windows 7 64/Pro) все еще усекал распечатку веб-сайта только на первой странице.

Затем я случайно заметил флажок под названием упрощение страницы в верхней части экрана предварительного просмотра Firefox: Введите описание изображения здесь

Когда я поставил этот флажок, Firefox удалил некоторые стили, но экран предварительного просмотра обновился до включите все страницы на веб-сайте!

Я не уверен, насколько широко применимо это так YMMV, но попробовать стоит! До сих пор я не нашел аналогичного решения для Chrome (версия 65.0.3325.162 (официальная сборка) (64-бит)).


P.S.: по дальнейшему опыту я вижу, что упрощение страницы удаляет не только стиль, но и некоторые целые элементы, такие как примеры разделов кода, поэтому обязательно внимательно просмотрите результаты перед печатью.

Для меня (bootstrap 4) решение было

.row {
  display: block;
}

Для меня работает следующее.

@media print {
  .field--body table tr {
    display: table-row-group !important;
  }
}

Comments

    Ничего не найдено.