diff options
-rw-r--r-- | Base/res/html/misc/display-grid.html | 8 | ||||
-rw-r--r-- | Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp | 6 |
2 files changed, 14 insertions, 0 deletions
diff --git a/Base/res/html/misc/display-grid.html b/Base/res/html/misc/display-grid.html index 812d6c9b94..4b50444c51 100644 --- a/Base/res/html/misc/display-grid.html +++ b/Base/res/html/misc/display-grid.html @@ -40,6 +40,14 @@ <div class="grid-item">1</div> </div> +<!-- Spans causing positions outside the inherit grid. (span 2 with an end position of 1 causes the start to be -1) --> +<p>If you can see this message then the test passed.</p> +<div class="grid-container"> + <div class="grid-item" style="grid-row: span 2 / 1; grid-column: span 2 / 1;">1</div> + <div class="grid-item" style="grid-row: span 2 / 1;">2</div> + <div class="grid-item" style="grid-column: span 2 / 1;">3</div> +</div> + <!-- Different column sizes --> <p>Should render a 2x2 grid with columns 50px and 50%</p> <div diff --git a/Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp b/Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp index dbacea653a..7b607cd0fd 100644 --- a/Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp +++ b/Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp @@ -225,6 +225,9 @@ void GridFormattingContext::run(Box const& box, LayoutMode, AvailableSpace const if (child_box.computed_values().grid_row_end().is_position() && child_box.computed_values().grid_row_start().is_span()) { row_span = child_box.computed_values().grid_row_start().raw_value(); row_start = row_end - row_span; + // FIXME: Remove me once have implemented spans overflowing into negative indexes, e.g., grid-row: span 2 / 1 + if (row_start < 0) + row_start = 1; } // If a name is given as a <custom-ident>, only lines with that name are counted. If not enough @@ -354,6 +357,9 @@ void GridFormattingContext::run(Box const& box, LayoutMode, AvailableSpace const if (child_box.computed_values().grid_column_end().is_position() && child_box.computed_values().grid_column_start().is_span()) { column_span = child_box.computed_values().grid_column_start().raw_value(); column_start = column_end - column_span; + // FIXME: Remove me once have implemented spans overflowing into negative indexes, e.g., grid-column: span 2 / 1 + if (column_start < 0) + column_start = 1; } // If a name is given as a <custom-ident>, only lines with that name are counted. If not enough |