Re: margin-collapse-157 probably invalid

On 11/24/2010 05:49 PM, L. David Baron wrote:
> I think that this test:
> http://test.csswg.org/suites/css2.1/20101027/html4/margin-collapse-157.htm
> is invalid.  As with any margin-collapsing and clear test, it's
> complicated, so I might be missing something.
>
> However, my basic logic is the following:
>
>   * the elements with class="clear" all have:
>     + clearance above them (below their top margin)
>     + border below them
>
> In the bottom row, they also contain an empty element
> (class="empty") with all margins set to 1em.  The top and bottom
> margins collapse with each other, but they can't collapse with
> anything outside of the element with class="clear" since they can't
> collapse across the clearance above or the border below.  This means
> that the margins of the class="empty" element should take up 1em of
> height below the aqua float (since their parent has clearance) and
> above their parent's bottom border.  In this 1em of space, the red
> background of the div with class="clear" should show through.
>
> So I think Gecko's rendering is correct (but, again, I could be
> missing something).

I think what you're missing is that clearance is applied *above* the
top margin of the clearing element, not below it.

 From http://www.w3.org/TR/CSS21/visuren.html#clearance
   # Clearance inhibits margin collapsing and acts as spacing above
   # the margin-top of an element.

 From http://www.w3.org/TR/CSS21/box.html#collapsing-margins
   # The top margin of an in-flow block box is adjoining to its first
   # in-flow block-level child's top margin if the element has no top
   # border, no top padding, and the child has no clearance.
                                     ^^^^^

Let me know if that clears things up, or if I need to investigate more.

~fantasai

Received on Wednesday, 1 December 2010 08:04:12 UTC