<!DOCTYPE html> <meta charset="utf-8"> <title>CSS Display: Computed style for display:contents</title> <link rel="author" title="Rune Lillesveen" href="mailto:rune@opera.com"> <link rel="help" href="https://drafts.csswg.org/css-display-3/#valdef-display-contents"> <link rel="help" href="https://drafts.csswg.org/css-display-3/#transformations"> <link rel="help" href="https://drafts.csswg.org/cssom-1/#resolved-values"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <style> html, .contents { display: contents } #t2 .contents { background-color: green } #t2 span { background-color: inherit } #t3 .contents { color: green } #t4 { width: auto; height: 50%; margin-left: 25%; padding-top: 10%; } </style> <div id="t1" class="contents"></div> <div id="t2"> <div class="contents"> <span></span> </div> </div> <div id="t3"> <div class="contents"> <span></span> </div> </div> <div id="t4" class="contents"></div> <script> test(function(){ assert_equals(getComputedStyle(document.querySelector("#t1")).display, "contents"); }, "Serialization of computed style value for display:contents"); test(function(){ assert_equals(getComputedStyle(document.querySelector("#t2 span")).backgroundColor, "rgb(0, 128, 0)"); }, "display:contents element as inherit parent - explicit inheritance"); test(function(){ assert_equals(getComputedStyle(document.querySelector("#t3 span")).color, "rgb(0, 128, 0)"); }, "display:contents element as inherit parent - implicit inheritance"); test(function(){ var computed = getComputedStyle(document.querySelector("#t4")); assert_equals(computed.width, "auto"); assert_equals(computed.height, "50%"); assert_equals(computed.marginLeft, "25%"); assert_equals(computed.paddingTop, "10%"); }, "Resolved value should be computed value, not used value, for display:contents"); test(function(){ assert_equals(getComputedStyle(document.documentElement).display, "block"); }, "display:contents is blockified for root elements"); </script>