Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Абсолютное позиционирование и разрыв страниц при печати
 
 автор: vadval15   (13.04.2013 в 16:08)   письмо автору
 
 

Почему при абсолютном позиционировании элементов web-страницы не работает управление процессом печати при помощи искусственных разрывов страниц (page-break-before и т.д.)? Можно ли как-нибудь этого избежать, сохранив данное позиционирование? Благодарю за любой комментарий по этому поводу.

  Ответить  
 
 автор: Deed   (14.04.2013 в 09:17)   письмо автору
 
   для: vadval15   (13.04.2013 в 16:08)
 

Элемент со стилем page-break-before, насколько я помню, не должен быть пустым:

<div style="">&nbsp;</div> 

А вообще-то, как я полагаю, подобная проблема возникает из-за того, что драйверу печати невдомек, что див со стайлом "page-break-after:always" должен находиться там, куда его приткнуло правило в css. Он считывает теги "линейно", один за другим, и, найдя элемент со стилем page-break-before, тут же лепит разрыв страницы.
А так как этот элемент "физически" (в коде), благодаря position:absolute (etc.), находится не совсем там, где мы его видим на странице? и возникают подобные заморочки.
Ну, можно, думаю, реальный разрыв страницы поместить на нужном месте в обрамлении <noscript>, что ли...

  Ответить  
 
 автор: vadval15   (15.04.2013 в 10:15)   письмо автору
 
   для: Deed   (14.04.2013 в 09:17)
 

Спасибо за совет, но контейнер <noscript> работает только при отключённой поддержке скриптов.

  Ответить  
 
 автор: Deed   (15.04.2013 в 12:46)   письмо автору
 
   для: 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">&nbsp;</div>

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования