W3C home > Mailing lists > Public > www-style@w3.org > October 2013

Re: [css3-multicol] margin collapsing between column-spanning element and blocks in column boxes: if, when?

From: Morten Stenshorne <mstensho@opera.com>
Date: Mon, 07 Oct 2013 10:57:12 +0200
To: Håkon Wium Lie <howcome@opera.com>
Cc: www-style@gtalbot.org, "W3C www-style mailing list" <www-style@w3.org>
Message-ID: <87iox9a26v.fsf@aeneas.oslo.osa>
Håkon Wium Lie <howcome@opera.com> writes:

> Morten Stenshorne wrote:
>
>  > >  > One issue that I wish would be explicit and clarified in the spec is if
>  > >  > margin collapsing can occur between a column-spanning element and blocks
>  > >  > in column boxes. If it can occur, then the spec should say so, then define
>  > >  > under which conditions along with an example. If it does not occur, then
>  > >  > the spec should say so.
>  > >
>  > > The answer is: yes, margin collapsing occur as per the normal rules.
>  > > That is, margin collapsing will not to through the content/border box
>  > > of a spanner or a multicol element (both are BFCs), but the margins of
>  > > a spanner will collapse with its surroundings.
>  > 
>  > This has been discussed before, and the opposite conclusion was reached.
>  > 
>  > http://lists.w3.org/Archives/Public/www-style/2010Oct/0774.html
>
> You're right that the two conclusions differ, if not being opposite;
> it seems to make sense that spanner collapse with others spanners and
> its containing block. But not with sibling elements. 

Isn't the containing block of a spanner always the multicol container
itself? And since a multicol container establishes a new BFC, its
margins cannot collapse with margins of spanner children.

I think a spanner's margins should only collapse with margins of sibling
spanners, and nothing else.

>  > How about this one:
>  > 
>  >         <div style="columns:2; column-rule:solid;">
>  >             <div style="column-span:all; margin-bottom:50px;">spanner</div>
>  >             text
>  >             <div style="break-before:column; margin-top:50px;">x</div>
>  >         </div>
>  > 
>  > I really don't want those two margins to collapse. :)
>
> Agree. They wouldn't if we exclud sibling elements. 
>
> But the second inner DIV (a) could possibly collase with the margins
> of the outer DIV if (a) appears after a natural break.

The outer DIV is a multicol container, and multicol containers establish
a new BFC, so they cannot collapse with children, can they? Maybe that's
not what you meant?

-- 
---- Morten Stenshorne, developer, Opera Software ASA ----
------------------ http://www.opera.com/ -----------------
Received on Monday, 7 October 2013 08:57:28 UTC

This archive was generated by hypermail 2.3.1 : Monday, 7 October 2013 08:57:29 UTC