- From: Simon Sapin <simon.sapin@kozea.fr>
- Date: Thu, 22 Mar 2012 19:51:44 +0100
- To: www-style@w3.org
Le 22/03/2012 19:37, Marat Tanalin | tanalin.com a écrit : > Let assume we have a container with blocks inside it, and each block can have margin-top and margin-bottom, and each block can contain another blocks inside them, and nesting level can be arbitrary and is unknown in advance. > > It would be nice to have ability to zeroize margin-top for first child, and first child of it, first child of first child of first child, etc. at once. Same applies for last child. > > Currently, AFAIK, we can only match children up to some_exact_ nesting level known in advance (3 in the example below): > > .container> :first-child, > .container> :first-child> :first-child, > .container> :first-child> :first-child> :first-child {} > > We cannot use just :first-child context selector since it would also select first children of blocks that are not first children themselves. > > So we need a sort of_recursive_ selector that matches not just first of last child, but recursively matches all first-most and last-most elements regardless of their nesting level. > > A possible syntax is quite straightforward: > > :first-child-recursive {margin-top: 0; } > :last-child-recursive {margin-bottom: 0; } Hi, Isn’t this handled by margin collapsing? Example: <style> div { background: #ccc } p { margin: 2em 0 } </style> <div> <p>a</p> <p>b</p> <p>c</p> </div> Because of margin collapsing, the top margin for "a" and the bottom margin for "c" collapse with the (zero) margins of the div and end up outside of the div, ie. outside of the background. -- Simon Sapin
Received on Thursday, 22 March 2012 18:52:17 UTC