<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<!--     This tests that toggling an inline's position to relative updates the position of any child blocks. -->
    <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;
            }
            #span2
            {
                background: blue;
                display: inline;
                width: 2in;
                left: 2in;
                top: 2in;
            }
            #div3
            {
                background: orange;
                width: 2in;
            }
        </style>
        <script type="text/javascript">
            if (window.testRunner) {
                testRunner.waitUntilDone();
            }

            function run() {
                document.getElementById("span2").style.position = "relative";
                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="span2">
                <i>
                <div id="div3">Filler Text</div>
                Filler Text
                </i>
            </span>
    </body>
</html>