Safari 1.3 и более поздние версии (не знаю, о 4) не поддерживают , а не поддерживают разрыв страницы (попробуйте или посмотрите здесь: http://reference.sitepoint.com/css/page-break-inside). Ни Firefox 3, ни IE7 ( не знаю насчет 8).
В практическом смысле поддержка этого атрибута настолько НЕУДАЧНА, на данном этапе его вообще не имеет смысла использовать. Вам бы повезло, если бы даже 10% ваших посетителей имели браузеры, которые могут это поддерживать.
Решение, которое я использовал, было добавить
page-break-after:always
к определенным элементам div или добавьте элемент div-разрыва страницы, где вы хотите разрывы. Я знаю, что это довольно жестко, потому что это не совсем то, что вы хотите, и приводит к тому, что контент не достигает нижней части печатной страницы, но, к сожалению, лучшего решения нет (докажите, что я неправ!).
Другой подход заключается в создании таблицы стилей, которая удаляет все посторонние элементы (display:none
) и заставляет основное содержимое перетекать в один основной столбец. По сути, превратите его в один столбец, текстовый документ.
Наконец, избегайте использования плавающих элементов и столбцов при стилизации для принтеров, это может привести к тому, что IE (и FF) будут вести себя странно.