W3C home > Mailing lists > Public > www-style@w3.org > November 2014

Re: [selectors] Proposal: :only-of(selector list)

From: Benjamin Poulain <bpoulain@apple.com>
Date: Thu, 13 Nov 2014 17:11:27 -0800
Cc: www-style@w3.org
Message-Id: <E7951109-E10C-48B4-9272-903416FC8D55@apple.com>
To: Benjamin Poulain <benjamin@webkit.org>
> On Nov 12, 2014, at 8:30 PM, Benjamin Poulain <benjamin@webkit.org> wrote:
> 
> On 11/11/14 4:14 PM, Tab Atkins Jr. wrote:
>> On Mon, Nov 10, 2014 at 8:40 PM, Benjamin Poulain <bpoulain@apple.com> wrote:
>>> It looks like it would be useful to include :only-of(selector list) in Selectors Level 4.
>>> 
>>> It is already possible to achieve the same behavior by using :nth-child(1 of selector list):nth-last-child(1 of selector list) but that is significantly uglier. Repeating the selector list is error prone when updating the stylesheet and the specificity is doubled.
>>> 
>>> The selector :only-of(selector list) would behave like :nth-child(1 of selector list):nth-last-child(1 of selector list) but with lower specificity (accounting for the selector list once instead of duplicating it). The definition of :only-of-type is pretty much the same.
>>> 
>>> The implementation is trivial based on the existing :nth-child() and :nth-last-child(). The single :only-of() is likely to be more efficient than :nth-child():nth-last-child() in most implementations.
>> 
>> Do you have some use-cases to share that would use this?
> 
> Pretty much the same uses use cases of :only-of-type and :only-child exists for :only-of.
> 
> Many designs are based on classes or data attributes. Having :only-of-type does not help in those cases.

I got some more feedback asking for this feature.

One of the use case is paginated documents where each page is identified by a class. The page number should only be displayed if there is more than one page in the document. Having :only-of() makes the implementation trivial.

Benjamin 
Received on Friday, 14 November 2014 01:12:17 UTC

This archive was generated by hypermail 2.3.1 : Monday, 2 May 2016 14:39:26 UTC