Open Bug 793686 Opened 10 years ago Updated 8 months ago

[css3-multicol] Column balancing breaks page-break-inside:avoid child

Categories

(Core :: Layout: Block and Inline, defect)

defect
Not set
normal

Tracking

()

Webcompat Priority P2

People

(Reporter: MatsPalmgren_bugz, Unassigned)

References

(Blocks 2 open bugs)

Details

(Keywords: testcase)

Attachments

(1 file)

Attached file Testcase #1
We need to be smarter about page-break-inside:avoid during column
balancing reflows.  See testcase, the desired rendering is a 1x1 inch
blue box in a single column.  Opera gets this right.
Blocks: css-multicol
See Also: → 1712093
Duplicate of this bug: 1727303

Note: per bug 1739561, this is now causing breakage in Gmail's "Trip" view (for travel-related emails), which display extracted bits of information in a multicol 'card' with various break-inside:avoid "units of information" inside of those cards. We're splitting up those units when we shouldn't be, due to this bug (or this category-of-bug).

Yes, column balancing can still breaks a break-inside:avoid child. It is because the helper function ShouldAvoidBreakInside() returns false when a frame is at top of page/column. A parent frame definitely cannot push a break-inside:avoid child at the top of page to the next page/column to avoid breaking it. We might need to propagate the information all the way up to column balancing algorithm, and teach the algorithm to handle the status so that it is aware that the currently chosen column bsize is too small to fit the unbreakable descendant.

See Also: → 1616377
Webcompat Priority: --- → P2
You need to log in before you can comment on or make changes to this bug.