2

我正在尝试在 Chrome 中打印文档时将一些 html 和 css 放在一起:

  • 在每个页面上显示固定的页眉和页脚
  • 显示 2 列信息。理想情况下,这些列会在移动到下一页之前从左向右流动。

我试图改编这个很好的指南,它使用固定的页眉和页脚,在theadtfoot. 我下面的片段接近我想要的(单击打印我查看打印布局):

.page-header, .page-header-space {
  height: 100px;
}

.page-footer, .page-footer-space {
  height: 100px;
}

.page-footer {
  position: fixed;
  bottom: 0;
  width: 100%;
  border-top: 1px solid black; /* for demo */
}

.page-header {
  position: fixed;
  top: 0mm;
  width: 100%;
  border-bottom: 1px solid rgb(22, 7, 7); /* for demo */
}

.two-column {
  column-count: 2;
}

h2 {
  margin: 0
}

table {
  width: 100%
}

.content {
  width: 100%;
  height: 75px;
  border: 1px solid blue;
  break-inside: avoid;
  display: flex;
  align-items: center;
  justify-content: center;
}


@page {
  margin: 20mm;
  size: 'A4';
  
}

@media print {
   thead {display: table-header-group;} 
   tfoot {display: table-footer-group;}
   
   button {display: none;}
   
   body {margin: 0;}
}
<html>
<head>
</head>
<body>
 <div class="page-header" style="text-align: center">
    I'm The Header
    <br/>
    <button type="button" onClick="window.print()" style="background: pink">
      PRINT ME!
    </button>
</div>
<div class="page-footer">
  I'm The Footer
</div>

        <table>
         <thead>
            <tr>
              <td>
                <div class="page-header-space"></div>
              </td>
            </tr>
         </thead>

          <tbody>
            <tr>
              <td>
                 <div class='two-column'>
                  <div class='content'>1</div>
                  <div class='content'>2</div>
                  <div class='content'>3</div>
                  <div class='content'>4</div>
                  <div class='content'>5</div>
                  <div class='content'>6</div>
                  <div class='content'>7</div>
                  <div class='content'>8</div>
                  <div class='content'>9</div>
                  <div class='content'>10</div>
                  <div class='content'>11</div>
                  <div class='content'>12</div>
                  <div class='content'>13</div>
                  <div class='content'>14</div>
                  <div class='content'>15</div>
                  <div class='content'>16</div>
                  <div class='content'>17</div>
                  <div class='content'>18</div>
                  <div class='content'>19</div>
                  <div class='content'>20</div>
                  <div class='content'>21</div>
                  <div class='content'>22</div>
                  <div class='content'>23</div>
                  <div class='content'>24</div>
                  <div class='content'>25</div>
                  <div class='content'>26</div>
                  <div class='content'>27</div>
                  <div class='content'>28</div>
                  <div class='content'>29</div>
                  <div class='content'>30</div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  
                 </div>
              </td>
             </tr>
          </tbody>
          
          <tfoot>
	      <tr>
	        <td>
	          <!--place holder for the fixed-position footer-->
	          <div class="page-footer-space"></div>
	        </td>
	      </tr>
	    </tfoot>
  </table>
</body>          
</html>

问题是,当打印预览中的第一列中断时,第二列顶部会有额外的 100 像素空间。我怀疑这是因为thead在分栏符和分页符上以某种方式“重复”:

在此处输入图像描述

有没有办法避免这种情况?

我也只关心在最新的 Chrome 浏览器中实现这一点。

谢谢。

4

1 回答 1

-1

剪切“ page-footer ” div 并将其粘贴到正文的最后,并为表格部分创建新的 div,如下所示

<html>
<head>
</head>
<body>
 <div class="page-header" style="text-align: center">
    I'm The Header
    <br/>
    <button type="button" onClick="window.print()" style="background: pink">
      PRINT ME!
    </button>
</div>

<div>
        <table>
         <thead>
            <tr>
              <td>
                <div class="page-header-space"></div>
              </td>
            </tr>
         </thead>

          <tbody>
            <tr>
              <td>
                 <div class='two-column'>
                  <div class='content'>1</div>
                  <div class='content'>2</div>
                  <div class='content'>3</div>
                  <div class='content'>4</div>
                  <div class='content'>5</div>
                  <div class='content'>6</div>
                  <div class='content'>7</div>
                  <div class='content'>8</div>
                  <div class='content'>9</div>
                  <div class='content'>10</div>
                  <div class='content'>11</div>
                  <div class='content'>12</div>
                  <div class='content'>13</div>
                  <div class='content'>14</div>
                  <div class='content'>15</div>
                  <div class='content'>16</div>
                  <div class='content'>17</div>
                  <div class='content'>18</div>
                  <div class='content'>19</div>
                  <div class='content'>20</div>
                  <div class='content'>21</div>
                  <div class='content'>22</div>
                  <div class='content'>23</div>
                  <div class='content'>24</div>
                  <div class='content'>25</div>
                  <div class='content'>26</div>
                  <div class='content'>27</div>
                  <div class='content'>28</div>
                  <div class='content'>29</div>
                  <div class='content'>30</div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>
                  <div class='content'></div>

                 </div>
              </td>
             </tr>
          </tbody>

          <tfoot>
          <tr>
            <td>
              <!--place holder for the fixed-position footer-->
              <div class="page-footer-space"></div>
            </td>
          </tr>
        </tfoot>
  </table>

  </div>

  <div class="page-footer">
  I'm The Footer
  </div>


</body>          
</html>
于 2019-04-04T05:52:05.543 回答