diff --git a/components/layout/block.rs b/components/layout/block.rs index 9eab35bc49a..72bd5de12cd 100644 --- a/components/layout/block.rs +++ b/components/layout/block.rs @@ -1308,8 +1308,15 @@ impl BlockFlow { let opaque_self = OpaqueFlow::from_flow(self); // Calculate non-auto block size to pass to children. + let box_border = match self.fragment.style().get_box().box_sizing { + box_sizing::T::border_box => self.fragment.border_padding.block_start_end(), + box_sizing::T::content_box => Au(0), + }; let parent_container_size = self.explicit_block_containing_size(layout_context); - let explicit_content_size = self.explicit_block_size(parent_container_size); + // https://drafts.csswg.org/css-ui-3/#box-sizing + let explicit_content_size = self + .explicit_block_size(parent_container_size) + .map(|x| if x < box_border { Au(0) } else { x - box_border }); // Calculate containing block inline size. let containing_block_size = if flags.contains(IS_ABSOLUTELY_POSITIONED) { diff --git a/tests/wpt/mozilla/meta/MANIFEST.json b/tests/wpt/mozilla/meta/MANIFEST.json index 2a6f388a612..e3841e63a71 100644 --- a/tests/wpt/mozilla/meta/MANIFEST.json +++ b/tests/wpt/mozilla/meta/MANIFEST.json @@ -1916,6 +1916,18 @@ "url": "/_mozilla/css/iframe/stacking_context_position_a.html" } ], + "css/image_percentage_dimen.html": [ + { + "path": "css/image_percentage_dimen.html", + "references": [ + [ + "/_mozilla/css/image_percentage_dimen_ref.html", + "==" + ] + ], + "url": "/_mozilla/css/image_percentage_dimen.html" + } + ], "css/image_rendering_auto_a.html": [ { "path": "css/image_rendering_auto_a.html", @@ -8302,6 +8314,18 @@ "url": "/_mozilla/css/iframe/stacking_context_position_a.html" } ], + "css/image_percentage_dimen.html": [ + { + "path": "css/image_percentage_dimen.html", + "references": [ + [ + "/_mozilla/css/image_percentage_dimen_ref.html", + "==" + ] + ], + "url": "/_mozilla/css/image_percentage_dimen.html" + } + ], "css/image_rendering_auto_a.html": [ { "path": "css/image_rendering_auto_a.html", diff --git a/tests/wpt/mozilla/tests/css/image_percentage_dimen.html b/tests/wpt/mozilla/tests/css/image_percentage_dimen.html new file mode 100644 index 00000000000..d25c607df30 --- /dev/null +++ b/tests/wpt/mozilla/tests/css/image_percentage_dimen.html @@ -0,0 +1,30 @@ + + + +
+ + + + +