Применение "page-break-before" к строке таблицы (tr)

согласно W3.org, стиль page-break-after применяется к элементам уровня блока (http://www.w3.org/TR/2004/CR-CSS21-20040225/page.html#page-break-props)

<tr> является элементом уровня блока (в соответствии с этим:http://www.htmlhelp.com/reference/html40/block.html, это)

Я делаю это, но разрыв страницы не создает фактического разрыва страницы при печати:

  <table>
    <tr><td>blah</td></tr>
    <tr><td>blah</td></tr>
    <tr style="page-break-after: always"><td>blah</td></tr>
    <tr><td>blah</td></tr>
  </table>

я делаю это правильно способ?

если <tr> не был элементом уровня блока:как я должен достичь этого разрыва страницы?

Примечание: код before-это просто пример, но то, что я пытаюсь сделать, это поместить разрыв страницы каждые 5 строк таблицы, поэтому, если вы знаете какие-либо советы для этого случая, будут оценены

2 ответов


внутри <head> задайте этот стиль

<head>
    <style>
        @media print {
            tr.page-break  { display: block; page-break-before: always; }
        }   
    </style>
</head>

таким образом, он будет производить разрыв страницы при печати прямо перед этой строкой таблицы.

<tr class="page-break">
</tr>

сайт, на который вы ссылались утверждает, что <tr> "может быть считается элементом уровня блока, так как он может содержать блочные элементы."Ни W3.org или Mozilla docs государство, что <tr> является элементом уровня блока.

Некоторые Возможные Решения

  1. основываясь на формулировке и вашем примере, я бы гарантировал, что ячейка содержит true элемент блочного уровня. Вот два примера использования <h1> и <p> которые являются текстовыми элементами уровня блока.

    <tr style="page-break-after: always"><td><h1>Next Section</h1></td></tr>
    <tr style="page-break-after: always"><td><p>This will be a new page.</p></td></tr>
    
  2. другие сообщили о подобных проблемах, и одно из решений может работать для вас.

  3. как отметил Мой Листер, можно попытка поймать действие печати или создать печатную версию страницы, которая будет отделять таблицу, чтобы вы могли получить желаемый разрыв страницы после каждых пяти строк.