【CSS】「page-break-inside: avoid」が効かない
印刷を考慮したページを作成していました。
その中で改ページを回避するために記述した「page-break-inside: avoid」が効かない部分がありました。
すぐに解決できましたが、すぐに忘れそうなのでメモです。
こんなイメージです。
テーブルの列の中で改ページするのを回避したつもりでした。
<style>
.noBreak {
page-break-inside: avoid;
}
</style>
<table>
<thead>
<tr>
<th>ヘッダ1</th>
<th>ヘッダ2</th>
<th>ヘッダ3</th>
</tr>
</thead>
<tbody>
<tr>
<td class="noBreak" >値1</td>
<td class="noBreak" >値2</td>
<td class="noBreak" >値3</td>
</tr>
<tr>
<td class="noBreak" >値4</td>
<td class="noBreak" >値5</td>
<td class="noBreak" >値6</td>
</tr>
</tbody>
</table>
tdタグ内で改ページを回避するクラスが設定されています。
しかし、実際に画面を印刷しようとすると、改ページが行われていました。
このように修正することで解決することができました。
<style>
.noBreak {
page-break-inside: avoid;
}
</style>
<table>
<thead>
<tr>
<th>ヘッダ1</th>
<th>ヘッダ2</th>
<th>ヘッダ3</th>
</tr>
</thead>
<tbody>
<tr class="noBreak" >
<td>値1</td>
<td>値2</td>
<td>値3</td>
</tr>
<tr class="noBreak" >
<td>値4</td>
<td>値5</td>
<td>値6</td>
</tr>
</tbody>
</table>
tdタグではなく、trタグにクラスを指定しています。
考えてみれば、改ページは行単位で行われるので当然かもしれませんね。
No comments.