Try using display: inline-block; instead of page-break-inside: avoid; . You can also add vertical-align: top; and width: 100%; so that elements appear as regular block elements instead of inline elements.
This method works reliably since long before page-break-inside: avoid; was implemented in most browsers. This is still the most reliable cross-platform way to prevent page breaks in the content block.
If you want to make the table indestructible, you can set display: inline-table; . Or you can just put it in a div with an inline block.
Doctordestructo
source share