summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Userland/Libraries/LibWeb/Layout/TableFormattingContext.cpp4
-rw-r--r--Userland/Libraries/LibWeb/Layout/TableFormattingContext.h5
2 files changed, 8 insertions, 1 deletions
diff --git a/Userland/Libraries/LibWeb/Layout/TableFormattingContext.cpp b/Userland/Libraries/LibWeb/Layout/TableFormattingContext.cpp
index 72c44a527e..a56b3e0ca8 100644
--- a/Userland/Libraries/LibWeb/Layout/TableFormattingContext.cpp
+++ b/Userland/Libraries/LibWeb/Layout/TableFormattingContext.cpp
@@ -210,7 +210,9 @@ void TableFormattingContext::compute_table_width()
auto& computed_values = table_box().computed_values();
- CSSPixels width_of_table_containing_block = m_state.get(*table_box().containing_block()).content_width();
+ // Percentages on 'width' and 'height' on the table are relative to the table wrapper box's containing block,
+ // not the table wrapper box itself.
+ CSSPixels width_of_table_containing_block = m_state.get(*table_wrapper().containing_block()).content_width();
// The row/column-grid width minimum (GRIDMIN) width is the sum of the min-content width
// of all the columns plus cell spacing or borders.
diff --git a/Userland/Libraries/LibWeb/Layout/TableFormattingContext.h b/Userland/Libraries/LibWeb/Layout/TableFormattingContext.h
index 4f1adabe4a..a709021976 100644
--- a/Userland/Libraries/LibWeb/Layout/TableFormattingContext.h
+++ b/Userland/Libraries/LibWeb/Layout/TableFormattingContext.h
@@ -8,6 +8,7 @@
#include <AK/Forward.h>
#include <LibWeb/Layout/FormattingContext.h>
+#include <LibWeb/Layout/TableWrapper.h>
namespace Web::Layout {
@@ -20,6 +21,10 @@ public:
virtual CSSPixels automatic_content_height() const override;
TableBox const& table_box() const { return static_cast<TableBox const&>(context_box()); }
+ TableWrapper const& table_wrapper() const
+ {
+ return verify_cast<TableWrapper>(*table_box().containing_block());
+ }
private:
void calculate_row_column_grid(Box const&);