Re: :first pseudo-selector

On 3/23/2012 2:37 AM, Marat Tanalin | tanalin.com wrote:
>> It's necessary if you have a box with some paragraphs and don't want to have unnecessary gaps at the the end and the beginning
>> of the box.
>
> As far as I understand this part of message, it's something that I thought of too.
>
> 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; }
>
> Thanks.
>

I may be missing something, but how is this not fulfilled by using the 
descendant combinator rather than the child combinator?

     .container :first-child { margin-top: 0; }
     .container :last-child { margin-bottom: 0; }

-- 
Daniel Tan/BoltClock
NOVALISTIC • Stellar Software Development & Design
<http://NOVALISTIC.com>

Received on Thursday, 22 March 2012 18:47:52 UTC