Files
sousa-gecko/testing/web-platform/tests/css/css-box/parsing/margin-trim.html
T
Morten Stenshorne d5d287a6a0 Bug 2015008 [wpt PR 57608] - Support margin-trim on block containers., a=testonly
Automatic update from web-platform-tests
Support margin-trim on block containers.

This adds parsing support for the CSS margin-trim property, and layout
support for block containers. Still no support for flex, grid or
multicol containers.
See https://drafts.csswg.org/css-box-4/#margin-trim

Also note that in our implementation margin-trim doesn't affect the
resolved value of margin properties, at least for now. There are
existing tests that expect this, but not clear whether it's correct.
See https://github.com/w3c/csswg-drafts/issues/11506

There are still some failures in css-box/parsing/margin-trim.html , but
not sure if they are valid. Canonical order should match the order in
the spec, which is "block" before "inline", and "start" before "end".

Bug: 40886857
Change-Id: Ie00d463b5f42fb09eac2958bc7ed7cb2ae28df2b
Skip-Clang-Tidy-Checks: google-readability-casting
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7544283
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1580724}

--

wpt-commits: c5fb6197614edb58d6c5c16e0c0245573ac7e174
wpt-pr: 57608
2026-02-12 13:02:51 +00:00

60 lines
2.7 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS margin-trim: property parsing</title>
<link rel="help" href="https://www.w3.org/TR/css-box-4/#margin-trim">
<link rel="author" title="Sammy Gill" href="mailto:sammy.gill@apple.com">
<meta name="assert" content="Test parsing for the margin-trim property">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
</head>
<body>
<script>
// Individual values should get set
test_valid_value("margin-trim", "none");
test_valid_value("margin-trim", "block");
test_valid_value("margin-trim", "inline");
test_valid_value("margin-trim", "block-start");
test_valid_value("margin-trim", "block-end");
test_valid_value("margin-trim", "inline-start");
test_valid_value("margin-trim", "inline-end");
test_valid_value("margin-trim", "block inline");
test_valid_value("margin-trim", "inline block");
// Serialize values into either block or inline
test_valid_value("margin-trim", "block-start block-end", "block");
test_valid_value("margin-trim", "inline-start inline-end", "inline");
test_valid_value("margin-trim", "block-end block-start", "block");
test_valid_value("margin-trim", "inline-end inline-start", "inline");
test_valid_value("margin-trim", "inline-start block-start");
test_valid_value("margin-trim", "inline-end block-start block-end");
// Serialize 4 values into "block inline"
test_valid_value("margin-trim", "block-start inline-start block-end inline-end", "block inline");
test_valid_value("margin-trim", "block-start block-end inline-end inline-start", "block inline");
test_valid_value("margin-trim", "block-start block-end inline-start inline-end", "block inline");
test_valid_value("margin-trim", "inline-start block-end block-start inline-end", "block inline");
test_valid_value("margin-trim", "inline-start inline-end block-start block-end", "block inline");
test_valid_value("margin-trim", "inline-end block-end inline-start block-start", "block inline");
test_invalid_value("margin-trim", "block block");
test_invalid_value("margin-trim", "inline inline");
test_invalid_value("margin-trim", "block inline-start inline-end");
test_invalid_value("margin-trim", "block block-start block-end");
test_invalid_value("margin-trim", "block-start block-end block");
test_invalid_value("margin-trim", "block-start block-start");
test_invalid_value("margin-trim", "block 10px");
test_invalid_value("margin-trim", "auto");
test_invalid_value("margin-trim", "left");
test_invalid_value("margin-trim", "none block");
test_invalid_value("margin-trim", "none block-start");
test_invalid_value("margin-trim", "inline none");
test_invalid_value("margin-trim", "inline-end none");
</script>
</body>
</html>