2013-05-17 5 views
0

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

Я предположил, что он будет разбит на страницы без каких-либо проблем. Проблема, которую я вижу, - это увеличение DIV по высоте до полной высоты страницы 1, вот и все. Больше не отображается за пределами страницы 1 печатного выхода.

После небольшого эксперимента, я обнаружил, что проблема display: inline устраняет проблему. Я не понимаю, почему.

Если это действительно решение проблемы, может кто-то объяснить, почему это устраняет мою проблему.

Я хочу понять причину, по которой это работает.

+0

Просто интересно - я проверил печать длинного div с контентом, а также - действительно ли свойство отображения сильно изменилось? Я имею в виду, что на моей странице контент автоматически помещался на несколько страниц, без необходимости фиксировать какое-либо позиционирование ... – Tyblitz

+0

Это может быть что-то еще в сочетании с свойством отображения. Как я уже сказал, я ожидал, что это будет автоматически. Как в стороне - любая идея, как печатать большие столы с горизонтальной и нужной вертикальной страницей? :) – psynnott

ответ

1

@ Ваш комментарий: вы задаете правильные вопросы в нужное время, так как я сейчас работаю точно так же! :) Я расскажу несколько скриншотов, чтобы показать результаты; Я думаю, что для печати действительно очень большой таблицы требуется довольно сложное решение, но для моей таблицы она работает (я бы назвал ее «medium»).

В моем приложении есть таблица в контейнере div, с элементами блока с дисплеем, установленным в table-cell (ширина столбцов не была согласованной при использовании поплавков и полей).

1. страница в нормальном WebView

The page in normal webview

2. Страница после ввода запроса печати в таблицу стилей, в печати (не против темного DIV, это маска я еще не удалены). Как вы видите, таблица просматривает несколько страниц и по горизонтали масштабируется по размеру.

@media print { 
#data {overflow: visible; height: auto;} /* the container div */ 
.bld {display: block} /* the blocks you see in the table, web display: table-cell */ 
/* I tested all table{ display: inline, inline-table, and table } and they 
all worked for me, as displayed in the screenshot below */ 
} 

The page in print

3.to набор pagebreaks для печати на определенной DIV (может грести), я буду называть вас на этот пост, потому что я не пробовал сам еще, но может быть стоит чтение: Make divs on a page print on seperate pages when printed

Другого хак будет позиционировать DIV где-то внутри первой колонки строки х, а затем установить этот DIVS CSS page-break-after: always; заставить разрывы страниц на этих строках. Я тестировал некоторые материалы для прокрутки на tr, td и table, но это не сработало (потому что tr имеет стиль, несколько отличный от других элементов HTML).

4. В качестве ссылки на различия между различными отображаемыми значениями для таблиц : https://stackoverflow.com/questions/15130285/css-differences-between-style-display-inline-inline-table-and-table

Я также буду читать об этом, если вы найдете что-то интересное, связанное с этой темой, напишите мне @ в комментариях, спасибо!

+0

Ничего себе, огромное спасибо - там много информации, которая займет у меня время, чтобы переварить и прочитать связанные сообщения. еще раз спасибо – psynnott

Смежные вопросы