1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 12:27:35 +00:00

LibWeb: Prevent margin double-counting with "collapse through" boxes

If there is a remaining margin-bottom in margin collapsing state
tracker after laying out all boxes in the current BFC, it must be
assigned to the last in-flow child since margin collapsing cannot
occur across a formatting context boundary.

The current issue where margin-bottom may be counted twice due to
"collapse through" margins in the last in-flow child box is addressed
with this fix by excluding such boxes during the search for a box to
assign the remaining margin.

Test case coming with this fix has a layout bug with incorrectly
computed line height.
This commit is contained in:
Aliaksandr Kalenik 2023-04-27 04:34:32 +03:00 committed by Andreas Kling
parent 7fffa0176f
commit 9ee64b5694
3 changed files with 37 additions and 9 deletions

View file

@ -0,0 +1,14 @@
<!doctype html><style>
* {
border: 1px solid black;
font-family: 'SerenitySans';
}
body {
padding: 0;
margin: 0;
display: inline-block;
}
.hmm {
margin-bottom: 100px;
}
</style><body><div class=hmm>suspiciously tall box</div> </body></html>