diff --git a/Tests/LibWeb/Layout/expected/table/size.txt b/Tests/LibWeb/Layout/expected/table/size.txt new file mode 100644 index 0000000000..2b7a15a74c --- /dev/null +++ b/Tests/LibWeb/Layout/expected/table/size.txt @@ -0,0 +1,16 @@ +Viewport <#document> at (0,0) content-size 800x600 children: not-inline + BlockContainer at (0,0) content-size 800x33.46875 children: not-inline + BlockContainer at (8,8) content-size 784x17.46875 children: not-inline + TableWrapper <(anonymous)> at (350,8) content-size 100x17.46875 children: not-inline + TableBox
at (350,8) content-size 100x17.46875 children: not-inline + TableRowBox <(anonymous)> at (350,8) content-size 100x17.46875 children: not-inline + TableCellBox <(anonymous)> at (350,8) content-size 100x17.46875 children: not-inline + BlockContainer <(anonymous)> at (350,8) content-size 100x0 children: inline + TextNode <#text> + BlockContainer
at (350,8) content-size 2000x17.46875 children: inline + line 0 width: 6.34375, height: 17.46875, bottom: 17.46875, baseline: 13.53125 + frag 0 from TextNode start: 0, length: 1, rect: [350,8 6.34375x17.46875] + "1" + TextNode <#text> + BlockContainer <(anonymous)> at (350,25.46875) content-size 100x0 children: inline + TextNode <#text> diff --git a/Tests/LibWeb/Layout/input/table/size.html b/Tests/LibWeb/Layout/input/table/size.html new file mode 100644 index 0000000000..59e9e9c6a8 --- /dev/null +++ b/Tests/LibWeb/Layout/input/table/size.html @@ -0,0 +1,17 @@ + + + +
+
1
+
\ No newline at end of file diff --git a/Userland/Libraries/LibWeb/Layout/TableFormattingContext.cpp b/Userland/Libraries/LibWeb/Layout/TableFormattingContext.cpp index dad77c8e88..0a9dd32306 100644 --- a/Userland/Libraries/LibWeb/Layout/TableFormattingContext.cpp +++ b/Userland/Libraries/LibWeb/Layout/TableFormattingContext.cpp @@ -246,6 +246,8 @@ void TableFormattingContext::compute_table_width() // of resolved-table-width, and the used min-width of the table. CSSPixels resolved_table_width = computed_values.width().resolved(table_box(), CSS::Length::make_px(width_of_table_containing_block)).to_px(table_box()); used_width = max(resolved_table_width, used_min_width); + if (!computed_values.max_width().is_none()) + used_width = min(used_width, computed_values.max_width().resolved(table_box(), CSS::Length::make_px(width_of_table_containing_block)).to_px(table_box())); table_box_state.set_content_width(used_width); } }