CSS Page Break Limitations

Page break is not applied always in HTML, see CSS Specification.

Samples when page break is NOT APPLIED

Page break on inline 'div' element, page break is applied only on block-level elements. Just remove 'display: inline' from CSS style to make it work.
Page break on a table row, 'tr' is not a block-level element.
Page break on a table cell, 'td' is not a block-level element.
Page break is not applied to absolutely positioned element.

How to force page break on a table row

Row 1

Page break applies to 2nd row due to 'display: block' on all rows.