2

我有一张有数百行的长桌。为了在每一页上打印表格标题,我使用 THEAD {display: table-header-group} 来设置表格的样式。它在 Firefox 和 IE9 中按预期工作。但是当我尝试强制分页符时,如下面的代码所示,它在 IE9 中不起作用。使用 IE9,表格标题只打印表格自然中断的页面。

这是代码片段 -

CSS: 
@media print {
    thead { display: table-header-group; }
}

HTML/PHP:
    <table>
      <thead>
        <tr>
           <th>Header 1</th>
               <th>Header 2</th>
               <th>Header 3</th>        
           </tr>
      </thead>
      <tbody>
           <?php 
           foreach ($items as $item) {
               echo  " <tr> " ;
                  echo  "<td>text</td>" ;
                  echo  "<td>text</td>" ;
                  echo  "<td>text</td>" ;

                  if ($condition) {
                      echo  "</tr>" ;

                      echo  "<tr style='page-break-after:always;'>" ;
                      echo  "</tr>" ;
                  }
           }
           ?>
       </tbody>
    </table>

将不胜感激任何帮助。

谢谢。

4

1 回答 1

2

从使用带有结束标签的正确 HTML 开始

if ($condition) {
   echo ( "</tr>" );
   echo ( "<tr style='page-break-after:always;'>" );
   echo ( "</tr>" );
} else {
   echo ( "</tr>" );
}

如果这没有帮助,请尝试

if ($condition) {
   echo ( "</tr>" );
   echo ( "<tr style='page-break-after:always;'>" );
   echo ( "</tr> " );
   echo ( ' <tr class="class_only_visible_when_printed"> ' );
   echo ( "  <th>Header 1</th> " );
   echo ( "  <th>Header 2</th> " );
   echo ( "  <th>Header 3</th> " );        
   echo ( " </tr> " );
} else {
   echo ( "</tr>" );
} 
于 2013-03-21T16:32:36.657 回答