<!DOCTYPE html>
<meta charset=utf-8>
<title>CSS Cascading and Inheritance test: Root element inherits from initial values</title>
<link rel="author" title="Rune Lillesveen" href="mailto:rune@opera.com">
<link rel="help" href="https://www.w3.org/TR/css3-cascade/#inheriting">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
html {
  z-index: inherit;
  position: inherit;
  overflow: inherit;
  background-color: inherit;
}
body {
  overflow: scroll;
  background-color: pink;
}
</style>
<script>
  test(function() {
    assert_equals(getComputedStyle(document.documentElement).zIndex, "auto");
  }, "z-index:inherit on root element should compute to 'auto'.");

  test(function() {
    assert_equals(getComputedStyle(document.documentElement).position, "static");
  }, "position:inherit on root element should compute to 'static'.");

  test(function() {
    assert_equals(getComputedStyle(document.documentElement).overflow, "visible");
  }, "overflow:inherit on root element should compute to 'visible'.");

  test(function() {
    assert_equals(getComputedStyle(document.documentElement).backgroundColor, "rgba(0, 0, 0, 0)");
  }, "background-color:inherit on root element should compute to 'rgba(0, 0, 0, 0)'.");
</script>
