LibWeb: Respect margin boxes when center-aligning flex items

This commit is contained in:
Lukas Scheller 2025-03-04 17:36:07 +01:00 committed by Andreas Kling
commit ce93088a81
Notes: github-actions[bot] 2025-03-05 17:08:08 +00:00
3 changed files with 31 additions and 1 deletions

View file

@ -1476,7 +1476,9 @@ void FlexFormattingContext::align_all_flex_items_along_the_cross_axis()
item.cross_offset = half_line_size - item.cross_size.value() - item.margins.cross_after - item.borders.cross_after - item.padding.cross_after;
break;
case CSS::AlignItems::Center:
item.cross_offset = -(item.cross_size.value() / 2);
// https://drafts.csswg.org/css-flexbox/#align-items-property
// The flex items margin box is centered in the cross axis within the line
item.cross_offset = (-item.cross_size.value() + item.margins.cross_before + item.borders.cross_before + item.padding.cross_before - item.margins.cross_after - item.borders.cross_after - item.padding.cross_after) / 2;
break;
default:
break;