Fix positioning of statically positioned fixed child of absolutes

This commit is contained in:
Martin Robinson 2023-06-22 11:28:26 +02:00
parent d3bb2170b8
commit 63a6b73f9a
No known key found for this signature in database
GPG key ID: D56AA4FA55EFE6F8
6 changed files with 37 additions and 6 deletions

View file

@ -626,8 +626,19 @@ impl HoistedAbsolutelyPositionedBox {
)
};
positioning_context.layout_collected_children(layout_context, &mut new_fragment);
// Any hoisted boxes that remain in this positioning context are going to be hoisted
// up above this absolutely positioned box. These will necessarily be fixed position
// elements, because absolutely positioned elements form containing blocks for all
// other elements. If any of them have a static start position though, we need to
// adjust it to account for the start corner of this absolute.
positioning_context.adjust_static_position_of_hoisted_fragments_with_offset(
&new_fragment.content_rect.start_corner,
);
for_nearest_containing_block_for_all_descendants
.extend(positioning_context.for_nearest_containing_block_for_all_descendants);
new_fragment
}
}