2010-06-29 1 views
3

Я прочитал много вопросов, заданных здесь и в других местах, и я смущен, почему разрывы страниц, похоже, не работают для меня. Я создал тестовую html-страницу, которая выглядит так:page-break-after с IE и FF не работает как ожидалось

<html> 
    <head> 
     <style type="text/css"> 
      @media all 
      { 
       .page-break { } 
      } 

      @media print 
      { 
       div {page-break-after:always; } 
      } 
     </style> 
    </head> 
    <body> 
     <div class="page-break"> 
      1content content content content content content content content content content content content 
      content content content content content content content content content content content content 
      content content content content content content content content content content content content 
      content content content content content content content content content content content content 
      content content content content content content content content content content content content 
      content content content content content content content content content content content content 
      content content content content content content content content content content content content 
      content content content content content content content content content content content content 
      content content content content content content content content content content content content 
      content content content content content content content content content content content content 
      content content content content content content content content content content content content 
      content content content content content content content content content content content content 
      content content content content content content content content content content content content 
      content content content content content content content content content content content content 
      content content content content content content content content content content content content 
      content content content content content content content content content content content content 
     </div> 
     <div class="page-break"> 
      2content content content content content content content content content content content content 
      content content content content content content content content content content content content 
      content content content content content content content content content content content content 
      content content content content content content content content content content content content 
      content content content content content content content content content content content content 
      content content content content content content content content content content content content 
      content content content content content content content content content content content content 
      content content content content content content content content content content content content 
      content content content content content content content content content content content content 
      content content content content content content content content content content content content 
      content content content content content content content content content content content content 
      content content content content content content content content content content content content 
      content content content content content content content content content content content content 
      content content content content content content content content content content content content 
      content content content content content content content content content content content content 
      content content content content content content content content content content content content 
     </div> 
... 
</body> 
</html> 

У меня есть девять из этих div. Достаточно просто? Это работает отлично (он помещает каждый div на отдельную страницу, как ожидалось). Теперь для вещей, которые не работают для IE и FF. Моя цель здесь - создать простой html-документ, который никогда не ломается внутри одного из этих 9 разделов. Если я изменю свой стиль div на разрыв страницы внутри: избегайте его абсолютно никакого эффекта в IE или FF. Если я попробую разрывать страницы: избегать или перерывать страницы после: auto, похоже, это не влияет на простой html-документ. Я что-то упускаю. У кого-нибудь есть решение, которое будет работать как в Explorer, так и в FireFox?

ответ

1

К сожалению, Firefox не поддерживает «разрывы страниц», поэтому лучше всего использовать «page-break-before: always». Это поддерживается IE и Firefox и гарантирует, что у каждой DIV есть полная страница пространства для использования. Я бы также не применить класс к первому DIV, так как это приведет к ненужному перерыву. Вот разметка:

<html> 
    <head> 
     <style type="text/css"> 
      @media print 
      { 
       .page-break { page-break-before: always; } 
      } 
     </style> 
    </head> 
    <body> 
     <div> 
      1content content content content content content content content content content content content 
      content content content content content content content content content content content content 
     </div> 
     <div class="page-break"> 
      2content content content content content content content content content content content content 
      content content content content content content content content content content content content 
     </div> 
... 
</body> 
</html> 
+0

Благодарим за отзыв. Этот подход будет работать нормально, если мне нужен только один div на страницу, но я хочу, чтобы на нем было столько же, сколько я могу, не разбивая div пополам. Имеет ли это смысл? В моем html-отчете у меня есть разные разделы, которые различаются по высоте. Я хочу, чтобы как можно больше на странице, без перерыва страницы в середине раздела. – testing123

+0

Теперь я понимаю, что вы имеете в виду. Чтобы расширить то, что я сказал ранее, Firefox в настоящее время не поддерживает * любые * функции page-break- *, как отслеживается с помощью ошибки 132035: https://bugzilla.mozilla.org/show_bug.cgi?id= 132035 –

+0

Есть ли IE? Я не мог заставить его работать в IE8. По правде говоря, если бы я мог заставить его работать в IE, я был бы доволен (почти все наши пользователи используют> = IE7). – testing123

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