A box with negative margin should drop it in order to fit next to floats rather than push below the floats. It should drop the margin even when there is margin available in the containing block for the box to expand into. The behaviour here is not defined by CSS2.1 so this behaviour is for compatibility with IE and FF. IE expands the table into the margin of the parent, FF does not. We match FF. Presto expanded all the boxes into parent's margin.

float
margin-left:-200px; overflow:auto;
FAIL:
Expected 500 for width, but got 700. 

<div class="box" data-expected-width="500">margin-left:-200px; overflow:auto;</div>
float
margin-left:-200px; overflow:hidden;
FAIL:
Expected 500 for width, but got 700. 

<div class="box" style="overflow: hidden" data-expected-width="500">margin-left:-200px; overflow:hidden;</div>
float
margin-left:0; overflow:auto;
PASS
float
margin-left:-200px; overflow:visible;
PASS
float
margin-left:-200px; display:table; blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
FAIL:
Expected 500 for width, but got 700. 

<div class="box" style="overflow: visible; display: table" data-expected-width="500">
        margin-left:-200px; display:table;
        blah blah blah blah blah blah blah blah blah blah blah blah blah blah
        blah blah blah blah blah blah blah blah blah blah blah blah blah blah
        blah blah blah blah blah blah blah blah blah blah blah blah blah blah
    </div>
