<head>
    <title></title>
    <script>
        if (window.testRunner)
            testRunner.testRepaint();
    </script>
    <style>
        td { border: 4px dotted black; }
    </style>
</head>
<body>
    <table style="margin-top: 50px;">
        <tr>
            <td>
                <div style="height: 50px; width: 100px; background: lightgreen;">
                </div>
            </td>
            <td>
                <div style="height: 10px; width: 100px; background: lightgreen;">
                    <div style="height: 100px; width: 50px; background: skyblue;">
                    </div>
                </div>
            </td>
            <td>
                <div style="height: 10px; width: 100px; background: lightgreen;">
                    <div style="margin-top: -75px; height: 100px; width: 50px; background: skyblue;">
                    </div>
                </div>
            </td>
        </tr>
    </table>
    <table style="margin-top: 150px; border-collapse: collapse;">
        <tr>
            <td>
                <div style="height: 50px; width: 100px; background: lightgreen;">
                </div>
            </td>
            <td>
                <div style="height: 10px; width: 100px; background: lightgreen;">
                    <div style="height: 100px; width: 50px; background: skyblue;">
                    </div>
                </div>
            </td>
            <td>
                <div style="height: 10px; width: 100px; background: lightgreen;">
                    <div style="margin-top: -75px; height: 100px; width: 50px; background: skyblue;">
                    </div>
                </div>
            </td>
        </tr>
    </table>
</body>
