<tr> 在 <tbody> 为 display:block 时压缩

<tr> squeezed when <tbody> is display:block

我需要向我的 tbody 添加一个显示块以使我的分页符内部工作。

当我这样做时,分页符在打印时起作用,但是 table 的形状针对一个特定的 tbody 进行了修改。

html:

<div class="row section-content">
   <table>
      <tbody class="subsection">
         <tr>
            <th colspan="2">Personal infos</th>
         </tr>
         <tr class="check">
            <td class="control-title">Is licensed</td>
            <td class="check-body control-body">false</td>
         </tr>
         <tr class="text">
            <td class="control-title">First name</td>
            <td class="text-body control-body"> Gc yt?tv</td>
         </tr>
         <tr class="text">
            <td class="control-title">Last name</td>
            <td class="text-body control-body">Bhvug7y</td>
         </tr>
         <tr class="text">
            <td class="control-title">Adress</td>
            <td class="text-body control-body">Guvyb</td>
         </tr>
         <tr class="radioBtn">
            <td class="control-title">Wants to suscribe to monthly discount</td>
            <td class="radio-body control-body">No</td>
         </tr>
         <tr class="number">
            <td class="control-title">Annual household income</td>
            <td class="number-body control-body">10</td>
         </tr>
      </tbody>
      <tbody class="subsection">
         <tr>
            <th colspan="2">Accomodation</th>
         </tr>
         <tr class="gps">
            <td class="control-title">Location</td>
            <td class="gps-body control-body">55.8755037, -4.2547716</td>
         </tr>
         <tr class="number">
            <td class="control-title">Iso reference</td>
            <td class="number-body control-body">15</td>
         </tr>
         <tr class="radioBtn">
            <td class="control-title">Accomodation type</td>
            <td class="radio-body control-body">House</td>
         </tr>
      </tbody>
   </table>
</div>

之前: ]

显示块后:

我确实遇到了同样的问题,经过全面搜索后,我找到了解决问题的方法,即首先将 class 添加到 table,您不想在打印时中断 [= =11=] 现在添加 css

.unbreakable td{
    width: 100% !important;
}
.unbreakable tr{
    page-break-inside: avoid !important;
}

它对我很好,希望对你也有用...:) 谢谢...

在为同一个问题苦苦挣扎了几天之后,我发现使用 display:table-row-group 非常适合这种情况。

display:block 将断开元素与父元素 table 的连接,从而导致此问题。 display:table-row-group<tbody> 一样渲染元素,保持 DOM 正确。

参考:https://www.w3schools.com/jsref/prop_style_display.asp