1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 09:38:11 +00:00

LibWeb: Exclude borders from width available for table columns

Fix table box width calculation to minus horizonal borders from space
available for columns.
This commit is contained in:
Aliaksandr Kalenik 2023-04-29 16:27:21 +03:00 committed by Andreas Kling
parent a04316403e
commit e54ee7de96
5 changed files with 33 additions and 10 deletions

View file

@ -206,6 +206,8 @@ void TableFormattingContext::compute_table_measures()
void TableFormattingContext::compute_table_width()
{
// https://drafts.csswg.org/css-tables-3/#computing-the-table-width
auto& table_box_state = m_state.get_mutable(table_box());
auto& computed_values = table_box().computed_values();
@ -239,7 +241,6 @@ void TableFormattingContext::compute_table_width()
// If the table-root has 'width: auto', the used width is the greater of
// min(GRIDMAX, the tables containing block width), the used min-width of the table.
used_width = max(min(grid_max, width_of_table_containing_block), used_min_width);
table_box_state.set_content_width(used_width);
} else {
// If the table-roots width property has a computed value (resolving to
// resolved-table-width) other than auto, the used width is the greater
@ -248,8 +249,11 @@ void TableFormattingContext::compute_table_width()
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);
}
// The assignable table width is the used width of the table minus the total horizontal border spacing (if any).
// This is the width that we will be able to allocate to the columns.
table_box_state.set_content_width(used_width - table_box_state.border_left - table_box_state.border_right);
}
void TableFormattingContext::distribute_width_to_columns()