- From: Bruno Fassino <fassino@gmail.com>
- Date: Sun, 27 Oct 2013 06:20:58 +0100
- To: Robert Hogan <robhogan@gmail.com>
- Cc: Public CSS test suite mailing list <public-css-testsuite@w3.org>, Gérard Talbot <css21testsuite@gtalbot.org>
- Message-ID: <CAL62zVd_B55GQ3voR7QoMV0Fz85s640cc35dWgWn1KnSgbMGYQ@mail.gmail.com>
On Sun, Oct 27, 2013 at 12:16 AM, Robert Hogan <robhogan@gmail.com> wrote: > > On Oct 26, 2013 5:31 PM, "Bruno Fassino" <fassino@gmail.com> wrote:> > > So the margins of our "self-collapsing-with-clearance" collapse together > to 80px and the top border edge of the box is at 40px in the middle of > that. Clearance has to be added to this position, not to the whole 80px. > So clearance is 60px as stated in the test, not only 20px. > > I'm not clear where this rule to use the middle of the collapsed margin > follows from. Is it just the common sense location of a border box for the > element, halfway between its two margins as though the collapse makes both > 40 px each, or is there something else in play? > It comes from http://www.w3.org/TR/CSS2/box.html#collapsed-through . When two margins collapse there must be a conventional position where to put the border box of the element. In our case (no collapsing with the parent) this part of the spec applies: "The position of the element's top border edge is the same as it would have been if the element had a non-zero bottom border." Essentially the top border edge is the same as if there were no collapsing, so in our case it is at 40px (the top margin) from the top margin edge. (It happens to be exactly in the "middle" just for chance). This interpretation may be a bit "forced", especially because the mentioned spec continue saying: "Note that the positions of elements that have been collapsed through have no effect on the positions of the other elements with whose margins they are being collapsed; the top border edge position is __only__ required for laying out descendants of these elements." And we are using that position for computing the needed clearance, which is something else. Bruno
Received on Sunday, 27 October 2013 05:21:26 UTC