<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<!--     This tests that a block respects the positioning of a relative positioned inline parent when a relative
         positioned inline ancestor gets toggled to static. -->
    <head>
        <title>CSS Test: Block boxes within inline boxes are affected by positioning</title>
        <style type="text/css">
            #span1
            {
                background: yellow;
                height: 2in;
                display: inline;
                width: 2in;
                left: 2in;
                top: 2in;
                position: relative;
            }
            #span2
            {
                left: 2in;
                top: 2in;
                background: blue;
                display: inline;
                position: relative;
            }
            #div3
            {
                background: orange;
                width: 2in;
            }
        </style>
        <script type="text/javascript">
            if (window.testRunner) {
                testRunner.waitUntilDone();
            }

            function run() {
                document.getElementById("span1").style.position = "static";
                document.body.offsetTop;
                if (window.testRunner)
                    testRunner.notifyDone();
           }
        </script>
    </head>
    <body onload="setTimeout('run()', 10);">
        <p>Test passes if the orange box sits atop the blue box and both are in the center of the view.</p>
        <span id="span1">
            <span id="span2">
                <i>
                <div id="div3">Filler Text</div>
                Filler Text
                </i>
            </span>
        </span>
    </body>
</html>