diff --git a/Libraries/LibWeb/Layout/GridFormattingContext.cpp b/Libraries/LibWeb/Layout/GridFormattingContext.cpp index 4899f56807b..78bd751b129 100644 --- a/Libraries/LibWeb/Layout/GridFormattingContext.cpp +++ b/Libraries/LibWeb/Layout/GridFormattingContext.cpp @@ -2120,7 +2120,7 @@ void GridFormattingContext::layout_absolutely_positioned_element(Box const& box) // `Node::containing_block()` is not aware of that. Therefore, we need to // find the closest grid item ancestor in order to identify grid area it belongs to. NodeWithStyle const* containing_grid_item = &box; - while (containing_grid_item->parent() && !containing_grid_item->parent()->display().is_grid_inside()) + while (containing_grid_item->parent() && containing_grid_item->parent() != &grid_container()) containing_grid_item = containing_grid_item->parent(); auto const& computed_values = containing_grid_item->computed_values(); diff --git a/Tests/LibWeb/Layout/expected/grid/gfc-between-relpos-gfc-and-abspos-item.txt b/Tests/LibWeb/Layout/expected/grid/gfc-between-relpos-gfc-and-abspos-item.txt new file mode 100644 index 00000000000..4c516da78c3 --- /dev/null +++ b/Tests/LibWeb/Layout/expected/grid/gfc-between-relpos-gfc-and-abspos-item.txt @@ -0,0 +1,18 @@ +Viewport <#document> at (0,0) content-size 800x600 children: not-inline + BlockContainer at (0,0) content-size 800x16 [BFC] children: not-inline + BlockContainer
at (8,8) content-size 784x0 children: not-inline + Box