dynamic-top-change-005

Inheriting 'top' changes from abspos grandparent

WeasyPrint

This browser

Flags
combo, dom
Assertion
The position of a positioned element which inherits its 'top' value from its relatively positioned parent changes when the parent's 'top' value is changed.

Source

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 2 <html>
 3  <head>
 4   <title>CSS Test: Inheriting 'top' changes from abspos grandparent</title>
 5   <link rel="author" title="Boris Zbarsky" href="mailto:bzbarsky@mit.edu">
 6   <link rel="reviewer" title="Elika J. Etemad" href="http://fantasai.inkedblade.net/contact">
 7   <link rel="help" href="http://www.w3.org/TR/CSS21/cascade.html#value-def-inherit">
 8   <link rel="help" href="http://www.w3.org/TR/CSS21/visuren.html#position-props">
 9   <link rel="help" href="http://www.w3.org/TR/CSS21/visuren.html#propdef-position">
10   <meta name="flags" content="dom combo">
11   <meta name="assert" content="The position of a positioned element which inherits its 'top' value from its relatively positioned parent changes when the parent's 'top' value is changed.">
12   <style type="text/css">
13     .testDiv { position: relative; width: 100px; height: 100px; }
14     #green { top: 100px; background: green; }
15     #red { top: inherit; background: red; display: block; }
16     #parent { position: relative; }
17     body > p { position: absolute; font-size: medium; }
18     #grandparent { position: absolute; top: 0; }
19     body { font-size: 0; line-height: 0; position: relative; }
20   </style>
21   <script type="text/javascript">
22     window.onload = function() {
23       document.body.offsetWidth;
24       document.getElementById("parent").style.top = "50px";
25     }
26   </script>
27  </head>
28  <body>
29    <p>There should be no red.</p>
30    <div id="grandparent">
31      <span id="parent">
32        <span id="red" class="testDiv"></span>
33      </span>
34    </div>
35    <div id="green" class="testDiv"></div>
36  </body>
37 </html>