W3C home > Mailing lists > Public > www-style@w3.org > March 2012

Re: :first pseudo-selector

From: Daniel Tan/BoltClock <lists@NOVALISTIC.com>
Date: Fri, 23 Mar 2012 02:47:15 +0800
Message-ID: <4F6B73B3.50606@NOVALISTIC.com>
To: "Marat Tanalin | tanalin.com" <mtanalin@yandex.ru>
CC: fantasai <fantasai.lists@inkedblade.net>, "www-style@w3.org" <www-style@w3.org>
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 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 22 May 2012 03:48:53 GMT