wpt / css / css-backgrounds / parsing / background-position-computed.html

Status: PASS | Duration: 143ms | Subtests: 32/32 | Open test on wpt.live | wpt.fyi

Data from commit:
a50cb89 wpt: run reference-named files which are themselves tests (#836) (2026-09-03)

SubtestStatusMessage
Property background-position value '1px'PASS
Property background-position value '1px center'PASS
Property background-position value '-2% -3%'PASS
Property background-position value '5% top'PASS
Property background-position value 'center'PASS
Property background-position value 'center center'PASS
Property background-position value 'center 6px'PASS
Property background-position value 'center left'PASS
Property background-position value 'center right 7%'PASS
Property background-position value 'center bottom'PASS
Property background-position value 'center top 8px'PASS
Property background-position value 'left'PASS
Property background-position value 'right 9%'PASS
Property background-position value 'left 10px center'PASS
Property background-position value 'right 11% bottom'PASS
Property background-position value 'left 12px top 13px'PASS
Property background-position value 'right center'PASS
Property background-position value 'left bottom'PASS
Property background-position value 'right top 14%'PASS
Property background-position value 'bottom'PASS
Property background-position value 'top 15px center'PASS
Property background-position value 'bottom 16% left'PASS
Property background-position value 'top 17px right -18px'PASS
Property background-position value 'bottom center'PASS
Property background-position value 'top left'PASS
Property background-position value 'bottom right 19%'PASS
Property background-position value 'calc(10px + 0.5em) calc(10px - 0.5em)'PASS
Property background-position value 'calc(10px - 0.5em) calc(10px + 0.5em)'PASS
Property background-position value '12px 13px, 50% 6px, 30px -10px'PASS
Property background-position value 'center' multiple base valuesPASS
Property background-position value 'center, left' multiple base valuesPASS
Property background-position value 'center, left, bottom' multiple base valuesPASS

/css/css-backgrounds/parsing/background-position-computed.html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Backgrounds and Borders: getComputedStyle().backgroundPosition</title>
<link rel="help" href="https://drafts.csswg.org/css-backgrounds/#background-position">
<meta name="assert" content="background-position computed value is a list, each item a pair of offsets (horizontal and vertical) from the top left origin each given as a computed <length-percentage> value.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/computed-testcommon.js"></script>
<style>
  #target {
    font-size: 40px;
  }
</style>
</head>
<body>
<div id="target"></div>
<script>
test_computed_value("background-position", "1px", "1px 50%");
test_computed_value("background-position", "1px center", "1px 50%");
test_computed_value("background-position", "-2% -3%");
test_computed_value("background-position", "5% top", "5% 0%");
test_computed_value("background-position", "center", "50% 50%");
test_computed_value("background-position", "center center", "50% 50%");
test_computed_value("background-position", "center 6px", "50% 6px");
test_computed_value("background-position", "center left", "0% 50%");
test_computed_value("background-position", "center right 7%", "93% 50%");
test_computed_value("background-position", "center bottom", "50% 100%");
test_computed_value("background-position", "center top 8px", "50% 8px");
test_computed_value("background-position", "left", "0% 50%");
test_computed_value("background-position", "right 9%", "100% 9%");
test_computed_value("background-position", "left 10px center", "10px 50%");
test_computed_value("background-position", "right 11% bottom", "89% 100%");
test_computed_value("background-position", "left 12px top 13px", "12px 13px");
test_computed_value("background-position", "right center", "100% 50%");
test_computed_value("background-position", "left bottom", "0% 100%");
test_computed_value("background-position", "right top 14%", "100% 14%");
test_computed_value("background-position", "bottom", "50% 100%");
test_computed_value("background-position", "top 15px center", "50% 15px");
test_computed_value("background-position", "bottom 16% left", "0% 84%");
test_computed_value("background-position", "top 17px right -18px", "calc(100% + 18px) 17px");
test_computed_value("background-position", "bottom center", "50% 100%");
test_computed_value("background-position", "top left", "0% 0%");
test_computed_value("background-position", "bottom right 19%", "81% 100%");
test_computed_value("background-position", "calc(10px + 0.5em) calc(10px - 0.5em)", "30px -10px");
test_computed_value("background-position", "calc(10px - 0.5em) calc(10px + 0.5em)", "-10px 30px");
test_computed_value("background-position", "12px 13px, 50% 6px, 30px -10px", "12px 13px, 50% 6px, 30px -10px");

document.getElementById("target").style['background-image'] = "none, none";
test_computed_value("background-position", "center", "50% 50%", "multiple base values");
test_computed_value("background-position", "center, left", "50% 50%, 0% 50%", "multiple base values");
test_computed_value("background-position", "center, left, bottom", "50% 50%, 0% 50%, 50% 100%", "multiple base values");
</script>
</body>
</html>