| <html> |
| <head> |
| <script> |
| var others = [ |
| "background-position-x", |
| "background-position-y", |
| "border-spacing", |
| "overflow", |
| "-webkit-mask-position-x", |
| "-webkit-mask-position-y", |
| "-webkit-match-nearest-mail-blockquote-color", |
| "-webkit-text-size-adjust", |
| ]; |
| |
| if (window.layoutTestController) |
| layoutTestController.dumpAsText(); |
| |
| function log(message) |
| { |
| var console = document.getElementById("console"); |
| console.appendChild(document.createTextNode(message + "\n")); |
| } |
| |
| function dumpComputedStyle(element, properties) |
| { |
| var style = getComputedStyle(element); |
| |
| if (!properties) { |
| for (var i = 0; i != style.length; ++i) { |
| var name = style.item(i); |
| log(" " + name + ": " + style.getPropertyValue(name)); |
| } |
| properties = others; |
| } |
| |
| for (var i = 0; i != properties.length; ++i) { |
| var name = properties[i]; |
| log(" " + name + ": " + style.getPropertyValue(name)); |
| } |
| log(""); |
| } |
| |
| function test() |
| { |
| var outerDiv = document.getElementById("outer"); |
| var middleDiv = document.getElementById("middle"); |
| var innerDiv = document.getElementById("inner"); |
| |
| log("Computed style of an element whose parent's 'display' value is 'none':"); |
| dumpComputedStyle(innerDiv); |
| |
| outerDiv.style.color = "blue"; |
| middleDiv.style.fontSize = "large"; |
| log("After changing grandparent's 'color' and the parent's 'font-size' inherited properties:"); |
| dumpComputedStyle(innerDiv, ["border-top-width", "color"]); |
| |
| middleDiv.style.display = "block"; |
| log("After changing the parent's 'display' property to 'block', so that the child gets a renderer:"); |
| dumpComputedStyle(innerDiv, ["height", "margin-left", "width"]); |
| |
| middleDiv.style.display = ""; |
| log("After changing the parent's 'display' property back to 'none':"); |
| dumpComputedStyle(innerDiv, ["height", "margin-left", "width"]); |
| } |
| </script> |
| <style> |
| div#middle { display: none; } |
| div#inner { background: green; border-top: 1em solid; height: 100px; margin-left: auto; width: 50%; } |
| </style> |
| </head> |
| <body onload="test()"> |
| <pre id="console"></pre> |
| <div id="outer"> |
| <div id="middle"> |
| <div id="inner"> |
| </div> |
| </div> |
| </div> |
| </body> |
| </html> |