<!DOCTYPE html> <html> <head> <title>Parse, store, and serialize CSS variable references - shorthand properties</title> <meta rel="author" title="Kevin Babbitt"> <meta rel="author" title="Greg Whitworth"> <link rel="author" title="Microsoft Corporation" href="http://microsoft.com" /> <link rel="help" href="http://www.w3.org/TR/css-variables-1/#serializing-custom-props"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> </head> <body> <div id="target1" style="margin: var(--prop); margin-top: 10px"></div> <div id="target2" style="margin: var(--prop) !important; margin-top: 10px"></div> <div id="target3" style="margin: var(--prop); margin-top: 10px !important"></div> <div id="target4" style="background: var(--prop);"></div> <script type="text/javascript"> "use strict"; var testcases = [ { element: "target1", propertyName: "margin", expectedPropertyValue: "" }, { element: "target1", propertyName: "margin-left", expectedPropertyValue: "" }, { element: "target1", propertyName: "margin-top", expectedPropertyValue: "10px" }, { element: "target1", propertyName: "margin-right", expectedPropertyValue: "" }, { element: "target1", propertyName: "margin-bottom", expectedPropertyValue: "" }, { element: "target2", propertyName: "margin", expectedPropertyValue: "var(--prop)" }, { element: "target2", propertyName: "margin-left", expectedPropertyValue: "" }, { element: "target2", propertyName: "margin-top", expectedPropertyValue: "" }, { element: "target2", propertyName: "margin-right", expectedPropertyValue: "" }, { element: "target2", propertyName: "margin-bottom", expectedPropertyValue: "" }, { element: "target3", propertyName: "margin", expectedPropertyValue: "" }, { element: "target3", propertyName: "margin-left", expectedPropertyValue: "" }, { element: "target3", propertyName: "margin-top", expectedPropertyValue: "10px" }, { element: "target3", propertyName: "margin-right", expectedPropertyValue: "" }, { element: "target3", propertyName: "margin-bottom", expectedPropertyValue: "" }, { element: "target4", propertyName: "background", expectedPropertyValue: "var(--prop)" } ]; testcases.forEach(function (testcase) { test( function () { var div = document.getElementById(testcase.element); var actualPropertyValue = div.style.getPropertyValue(testcase.propertyName).trim(); assert_equals(actualPropertyValue, testcase.expectedPropertyValue); }, testcase.element + " " + testcase.propertyName); }); </script> </body> </html>