【问题标题】:thead doesn't repeat on every page if it gets long如果太长,thead 不会在每一页上重复
【发布时间】:2021-12-23 20:35:20
【问题描述】:

使用此处https://stackoverflow.com/a/47919120/487460 的解决方案,我可以在每一页上重复标题。但是如果标题高度增加,它就不再重复了!

thead 重复有什么限制吗?如果是这样,我该如何增加?

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">
  <title></title>
  <script type="text/javascript">
    function PrintPage() {
      document.getElementById('print').style.display = 'none';
      window.resizeTo(960, 600);
      document.URL = "";
      window.location.href = "";
      window.print();
    }
  </script>
  <style type="text/css" media="print">
    @page {
      size: auto;
      /* auto is the initial value */
      margin: 2mm 4mm 0mm 0mm;
      /* this affects the margin in the printer settings */
    }
    
    thead {
      display: table-header-group;
    }
    
    tfoot {
      display: table-footer-group;
    }
  </style>
  <style type="text/css" media="screen">
    thead {
      display: block;
    }
    
    tfoot {
      display: block;
    }
  </style>
</head>

<body>
  <form id="form1" runat="server">
    <div>
      <table style="width: 500px; margin: 0 auto;">
        <thead>
          <tr>
            <td>
              <p>header comes here for each page</p>
              <p>header comes here for each page</p>
              <p>header comes here for each page</p>
              <p>header comes here for each page</p>
              <p>header comes here for each page</p>
              <p>header comes here for each page</p>
              <p>header comes here for each page</p>
              <p>header comes here for each page</p>
              <p>header comes here for each page</p>
              <p>header comes here for each page</p>
              <p>header comes here for each page</p>
              <p>header comes here for each page</p>
            </td>
          </tr>
        </thead>
        <tbody>
             <tr><td>1</td></tr>
             <tr><td>2</td></tr>
             <tr><td>3</td></tr>
             <tr><td>4</td></tr>
             <tr><td>5</td></tr>
             <tr><td>6</td></tr>
             <tr><td>7</td></tr>
             <tr><td>8</td></tr>
             <tr><td>9</td></tr>
             <tr><td>10</td></tr>
             <tr><td>11</td></tr>
             <tr><td>12</td></tr>
             <tr><td>13</td></tr>
             <tr><td>14</td></tr>
             <tr><td>15</td></tr>
             <tr><td>16</td></tr>
             <tr><td>17</td></tr>
             <tr><td>18</td></tr>
             <tr><td>19</td></tr>
             <tr><td>20</td></tr>
             <tr><td>21</td></tr>
             <tr><td>22</td></tr>
             <tr><td>23</td></tr>
             <tr><td>24</td></tr>
             <tr><td>25</td></tr>
             <tr><td>26</td></tr>
             <tr><td>27</td></tr>
             <tr><td>28</td></tr>
             <tr><td>29</td></tr>
             <tr><td>30</td></tr>
             <tr><td>31</td></tr>
             <tr><td>32</td></tr>
             <tr><td>33</td></tr>
             <tr><td>34</td></tr>
             <tr><td>35</td></tr>
             <tr><td>36</td></tr>
             <tr><td>37</td></tr>
             <tr><td>38</td></tr>
             <tr><td>39</td></tr>
             <tr><td>40</td></tr>
             <tr><td>41</td></tr>
             <tr><td>42</td></tr>
             <tr><td>43</td></tr>
             <tr><td>44</td></tr>
             <tr><td>45</td></tr>
             <tr><td>46</td></tr>
             <tr><td>47</td></tr>
             <tr><td>48</td></tr>
             <tr><td>49</td></tr>
             <tr><td>50</td></tr>
             <tr><td>51</td></tr>
             <tr><td>52</td></tr>
             <tr><td>53</td></tr>
             <tr><td>54</td></tr>
             <tr><td>55</td></tr>
        </tbody>
        <tfoot>
          <tr>
            <td>
              footer comes here for each page
            </td>
          </tr>
        </tfoot>
      </table>
    </div>
    <br clear="all" />
    <input type="button" id="print" name="print" value="Print" onclick="javascript:PrintPage();" class="button" />
  </form>
</body>

</html>

【问题讨论】:

标签: html css printing header


【解决方案1】:

诀窍是在表头中使用th

 @page {
      size: auto;
      /* auto is the initial value */
      margin: 2mm 4mm 0mm 0mm;
      /* this affects the margin in the printer settings */
    }
<form id="form1" runat="server">
    <div>
      <table style="width: 500px; margin: 0 auto;">
        <thead>
          <tr>
            <th>
             Table header
            </th>
          </tr>
        </thead>
        <tbody>
             <tr><td>1</td></tr>
             <tr><td>2</td></tr>
             <tr><td>3</td></tr>
             <tr><td>4</td></tr>
             <tr><td>5</td></tr>
             <tr><td>6</td></tr>
             <tr><td>7</td></tr>
             <tr><td>8</td></tr>
             <tr><td>9</td></tr>
             <tr><td>10</td></tr>
             <tr><td>11</td></tr>
             <tr><td>12</td></tr>
             <tr><td>13</td></tr>
             <tr><td>14</td></tr>
             <tr><td>15</td></tr>
             <tr><td>16</td></tr>
             <tr><td>17</td></tr>
             <tr><td>18</td></tr>
             <tr><td>19</td></tr>
             <tr><td>20</td></tr>
             <tr><td>21</td></tr>
             <tr><td>22</td></tr>
             <tr><td>23</td></tr>
             <tr><td>24</td></tr>
             <tr><td>25</td></tr>
             <tr><td>26</td></tr>
             <tr><td>27</td></tr>
             <tr><td>28</td></tr>
             <tr><td>29</td></tr>
             <tr><td>30</td></tr>
             <tr><td>31</td></tr>
             <tr><td>32</td></tr>
             <tr><td>33</td></tr>
             <tr><td>34</td></tr>
             <tr><td>35</td></tr>
             <tr><td>36</td></tr>
             <tr><td>37</td></tr>
             <tr><td>38</td></tr>
             <tr><td>39</td></tr>
             <tr><td>40</td></tr>
             <tr><td>41</td></tr>
             <tr><td>42</td></tr>
             <tr><td>43</td></tr>
             <tr><td>44</td></tr>
             <tr><td>45</td></tr>
             <tr><td>46</td></tr>
             <tr><td>47</td></tr>
             <tr><td>48</td></tr>
             <tr><td>49</td></tr>
             <tr><td>50</td></tr>
             <tr><td>51</td></tr>
             <tr><td>52</td></tr>
             <tr><td>53</td></tr>
             <tr><td>54</td></tr>
             <tr><td>55</td></tr>
        </tbody>
        <tfoot>
          <tr>
            <td>
              footer comes here for each page
            </td>
          </tr>
        </tfoot>
      </table>
    </div>

  </form>

【讨论】:

  • 不!同样的问题!!如果你重复&lt;tr&gt;&lt;th&gt;Table header&lt;/th&gt;&lt;/tr&gt; 13 次或更多,标题将不会在第二页重复
  • 为什么要重复13次?
  • 我的实际项目中有一个长标题。在这里,对于简单的问题,我重复了这个标题以显示有一个长标题。如果标题高度超过 280 像素,则不会重复!
  • 您可以使用一个th 并在其中放置多个div 或p
  • 如果您在我的问题中看到,我在里面使用了一个td 和许多p。我把td改成了th,但同样的问题依旧存在。
猜你喜欢
  • 1970-01-01
  • 2018-08-16
  • 1970-01-01
  • 1970-01-01
  • 2014-01-09
  • 1970-01-01
  • 2010-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多