diff --git a/Tests/LibWeb/Layout/expected/flex/inline-flex-with-main-axis-margin-on-flex-container.txt b/Tests/LibWeb/Layout/expected/flex/inline-flex-with-main-axis-margin-on-flex-container.txt
new file mode 100644
index 0000000000..1196b65b11
--- /dev/null
+++ b/Tests/LibWeb/Layout/expected/flex/inline-flex-with-main-axis-margin-on-flex-container.txt
@@ -0,0 +1,10 @@
+Viewport <#document> at (0,0) content-size 800x600 children: not-inline
+ BlockContainer at (1,1) content-size 500x37.46875 [BFC] children: inline
+ line 0 width: 272.40625, height: 37.46875, bottom: 37.46875, baseline: 15.53125
+ frag 0 from Box start: 0, length: 0, rect: [10,10 162.40625x19.46875]
+ Box
at (10,10) content-size 162.40625x19.46875 flex-container(row) [FFC] children: not-inline
+ BlockContainer at (11,11) content-size 160.40625x17.46875 flex-item [BFC] children: inline
+ line 0 width: 160.40625, height: 17.46875, bottom: 17.46875, baseline: 13.53125
+ frag 0 from TextNode start: 0, length: 20, rect: [11,11 160.40625x17.46875]
+ "Immobilie inserieren"
+ TextNode <#text>
diff --git a/Tests/LibWeb/Layout/input/flex/inline-flex-with-main-axis-margin-on-flex-container.html b/Tests/LibWeb/Layout/input/flex/inline-flex-with-main-axis-margin-on-flex-container.html
new file mode 100644
index 0000000000..d1c9c670c2
--- /dev/null
+++ b/Tests/LibWeb/Layout/input/flex/inline-flex-with-main-axis-margin-on-flex-container.html
@@ -0,0 +1,17 @@
+
Immobilie inserieren
\ No newline at end of file
diff --git a/Userland/Libraries/LibWeb/Layout/InlineFormattingContext.cpp b/Userland/Libraries/LibWeb/Layout/InlineFormattingContext.cpp
index 127c29cbb4..24b585d31a 100644
--- a/Userland/Libraries/LibWeb/Layout/InlineFormattingContext.cpp
+++ b/Userland/Libraries/LibWeb/Layout/InlineFormattingContext.cpp
@@ -348,4 +348,19 @@ bool InlineFormattingContext::can_fit_new_line_at_y(CSSPixels y) const
return true;
}
+bool InlineFormattingContext::can_determine_size_of_child() const
+{
+ return parent().can_determine_size_of_child();
+}
+
+void InlineFormattingContext::determine_width_of_child(Box const& box, AvailableSpace const& available_space)
+{
+ return parent().determine_width_of_child(box, available_space);
+}
+
+void InlineFormattingContext::determine_height_of_child(Box const& box, AvailableSpace const& available_space)
+{
+ return parent().determine_height_of_child(box, available_space);
+}
+
}
diff --git a/Userland/Libraries/LibWeb/Layout/InlineFormattingContext.h b/Userland/Libraries/LibWeb/Layout/InlineFormattingContext.h
index c795c345fd..c1e5c15a60 100644
--- a/Userland/Libraries/LibWeb/Layout/InlineFormattingContext.h
+++ b/Userland/Libraries/LibWeb/Layout/InlineFormattingContext.h
@@ -34,6 +34,10 @@ public:
bool any_floats_intrude_at_y(CSSPixels y) const;
bool can_fit_new_line_at_y(CSSPixels y) const;
+ virtual bool can_determine_size_of_child() const override;
+ virtual void determine_width_of_child(Box const&, AvailableSpace const&) override;
+ virtual void determine_height_of_child(Box const&, AvailableSpace const&) override;
+
private:
void generate_line_boxes(LayoutMode);
void apply_justification_to_fragments(CSS::TextJustify, LineBox&, bool is_last_line);