|
|
|
| Почему при абсолютном позиционировании элементов web-страницы не работает управление процессом печати при помощи искусственных разрывов страниц (page-break-before и т.д.)? Можно ли как-нибудь этого избежать, сохранив данное позиционирование? Благодарю за любой комментарий по этому поводу. | |
|
|
|
|
|
|
|
для: vadval15
(13.04.2013 в 16:08)
| | Элемент со стилем page-break-before, насколько я помню, не должен быть пустым:
<div style=""> </div>
|
А вообще-то, как я полагаю, подобная проблема возникает из-за того, что драйверу печати невдомек, что див со стайлом "page-break-after:always" должен находиться там, куда его приткнуло правило в css. Он считывает теги "линейно", один за другим, и, найдя элемент со стилем page-break-before, тут же лепит разрыв страницы.
А так как этот элемент "физически" (в коде), благодаря position:absolute (etc.), находится не совсем там, где мы его видим на странице? и возникают подобные заморочки.
Ну, можно, думаю, реальный разрыв страницы поместить на нужном месте в обрамлении <noscript>, что ли... | |
|
|
|
|
|
|
|
для: Deed
(14.04.2013 в 09:17)
| | Спасибо за совет, но контейнер <noscript> работает только при отключённой поддержке скриптов. | |
|
|
|
|
|
|
|
для: vadval15
(15.04.2013 в 10:15)
| | Так ведь когда страницу читает драйвер печати, он скрипты игнорирует.
А еще лучше прямо на странице, в <head> прописать:
@media print { /* Стиль для печати */
body {
font-family: Times, 'Times New Roman', serif; /* Шрифт с засечками */
}
h1, h2, p {
color: #000; /* Черный цвет текста */
}
#page_break{
page-break-after:always;
}
}
|
И расположите этот пустой элемент с id="page_break" именно в том месте, где и должен быть разрыв страницы: <div id="page_break"> </div> | |
|
|
|