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

Re: Selectors 4 and Variables

From: Tantek Çelik <tantek@cs.stanford.edu>
Date: Sat, 1 Oct 2011 02:05:52 +0000
Message-ID: <1692319878-1317434754-cardhu_decombobulator_blackberry.rim.net-628381474-@b27.c18.bise6.blackberry>
To: "Brian Kardell" <bkardell@gmail.com>,"Tab Atkins Jr." <jackalmage@gmail.com>
Cc: "www-style@w3.org" <www-style@w3.org>,"Daniel Glazman" <daniel.glazman@disruptive-innovations.com>
Brian and Tab's case for :has() makes sense to me and I really like the way the example selectors read, much more readable than $ or ! options (or any other potential use of punctuation alone, frankly).

I just read the jQuery documentation:

http://api.jquery.com/has-selector/


and am convinced. 

Let's go with :has().

Thanks,

Tantek

-----Original Message-----
From: Brian Kardell <bkardell@gmail.com>
Sender: www-style-request@w3.org
Date: Fri, 30 Sep 2011 20:22:16 
To: Tab Atkins Jr.<jackalmage@gmail.com>
Cc: www-style@w3.org<www-style@w3.org>; Daniel Glazman<daniel.glazman@disruptive-innovations.com>
Subject: Re: Selectors 4 and Variables

I believe you are thinking of the multiple discussions where people (you,
me, Hixie, others?) have made this case to no avail.  To recap:  I believe
fantasi's concern was that combinators are problematic without extra syntax
like:

doc:has($ > .foo)

Unless you go jquery route (which I like) and scope it so that the lhs of
the combinator can be left off (because it is pretty unambiguous).

As Hixie and I have both pointed out, has actually has several benefits:

1. Can occur multiple times as in
div:has(.foo)+div:has(.bar)

2.  Ask a designer to read the two versions... Has is intuitive.

3.  It is essentially asking to codify something already popular and
proven... How often do you get a win like that?
On Sep 30, 2011 8:05 PM, "Tab Atkins Jr." <jackalmage@gmail.com> wrote:
> On Thu, Sep 29, 2011 at 11:35 PM, Daniel Glazman
> <daniel.glazman@disruptive-innovations.com> wrote:
>> Hi there,
>>
>> Both Selectors 4 and Variables now use the $ to represent something.
>> I think this is wrong and will lead to CSS maintainance issues
>> for web authors since a textual search for $p inside a style sheet will
>> retrieve not only the definitions/calls to variable p but also the
>> selectors having for subject a p. If this case will be probably be rare
>> - but real - in the html world, it could be bigger in the xml one.
>> I don't want to see that happen.
>>
>> I really have the gut feeling we should use different char descriptors
>> here. Long, really long ago, I proposed to use !. I still think this is
>> the best option, something very visual meaning an emphasis on the
>> corresponding simple selector.
>
> I thought it was generally agreed long ago that the best approach was
> to use :has() rather than a marker in the selector. It's more general
> and allows more types of things to be expressed.
>
> Basically, the subject indicator is exactly equivalent to a :has()
> pseudo limited to the end of the selector:
>
> foo $bar baz {...} == foo bar:has(baz) {...}
>
> However, :has() can be placed anywhere in the selector, and so allows
> more powerful selections:
>
> label:has(:checked) + section > p {...}
>
> This also has the nice benefit of not using up the $ (or any other
> glyph) inside of selectors.
>
> ~TJ
>

Received on Saturday, 1 October 2011 02:06:26 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 17:20:45 GMT