<!DOCTYPE html> <html> <head> <title>Parse, store, and serialize CSS variable (thorugh css Text)</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="--var: var1;"></div> <div id="target2" style="margin: var(--prop);"></div> <div id="target3" style="background: var(--prop);"></div> <div id="target4" style="margin: var(--prop) !important;"></div> <div id="target5" style="background: var(--prop) !important;"></div> <div id="target6" style="background: var(--prop); background: green;"></div> <div id="target7" style="background: green; background: var(--prop);"></div> <div id="target8" style="color: green; color: var(--prop);"></div> <div id="target9" style="margin: var(--prop); margin-top: 10px"></div> <div id="target10"style="expando: var(--prop);"></div> <script type="text/javascript"> "use strict"; var testcases = [ { element: "target1", expectedCssText: "--var: var1;" }, { element: "target2", expectedCssText: "margin: var(--prop);" }, { element: "target3", expectedCssText: "background: var(--prop);" }, { element: "target4", expectedCssText: "margin: var(--prop) !important;" }, { element: "target5", expectedCssText: "background: var(--prop) !important;" }, { element: "target6", expectedCssText: "background: green;" }, { element: "target7", expectedCssText: "background: var(--prop);" }, { element: "target8", expectedCssText: "color: var(--prop);" }, { element: "target9", expectedCssText: "margin-right: ; margin-bottom: ; margin-left: ; margin-top: 10px;" }, { element: "target10", expectedCssText: "" } ]; testcases.forEach(function (testcase) { test( function () { var div = document.getElementById(testcase.element); var actualCssText = div.style.cssText; assert_equals(actualCssText, testcase.expectedCssText); }, testcase.element); }); </script> </body> </html>