Как должны работать свойства разрыва страницы в CSS?
Вопрос
Современные браузеры - это предполагается, что CSS поддерживает свойства разрыва страницы в какой-то степени.Однако мне не удалось заставить ни один браузер печатать по-другому, когда я использую avoid
, widows
, или orphans
.Я делаю это неправильно, или поддержка браузера просто не такая надежная, как рекламируется?
h2 {
page-break-after: avoid;
}
p {
page-break-inside: avoid;
orphans: 2;
widows: 2;
}
Решение
Поддержка браузером печати - отстой.Не просто чуть-чуть, а совершенно тотально и ни с чем не сравнимо.Примерно раз в два года (в течение последних 10 лет) я поиграл с этим и всегда возвращаюсь к одному и тому же выводу:не полагайтесь на браузер, чтобы обеспечить хорошую печать.
Если он абсолютно необходим для правильного позиционирования, создайте PDF-файл "на лету" и позвольте пользователю распечатать его.
Другие советы
Если вы хотите сделать разрыв страницы, я знаю, что именно так это работает, по крайней мере, в Firefox и IE.В прошлый раз, когда я проверял, это работало в IE7.
Page 1
<br style="page-break-after:always" />
Page 2
IT следует распечатайте страницы на отдельных листах бумаги, полностью зависящих от браузера.
Я знаю, что это будет идти вразрез со всем, что все говорят о разработке html, но используйте таблицы.Поместите содержимое, которое должно оставаться вместе, в таблицу, и тогда страница не будет разделена посередине таблицы.Если таблица длиннее одной страницы, то она будет разделена где-то в середине таблицы, но использование таблиц - хороший способ сохранить содержимое вместе при печати.