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

Re: [selectors] Any benefit of [att|="val"] over [att="val"], [att^="val-"]

From: fantasai <fantasai.lists@inkedblade.net>
Date: Sun, 07 Sep 2014 09:29:54 -0400
Message-ID: <540C5DD2.1030404@inkedblade.net>
To: "Tab Atkins Jr." <jackalmage@gmail.com>, James Craig <jcraig@apple.com>
CC: www-style list <www-style@w3.org>
On 09/03/2014 11:48 AM, Tab Atkins Jr. wrote:
> On Wed, Sep 3, 2014 at 12:27 AM, James Craig <jcraig@apple.com> wrote:
>> What's the benefit of this very specific and seemingly limited [att|=val] selector:
>>
>>          [lang|="en"] { /* properties */ }
>>
>> Over this combination of more extensible selectors?
>>
>>          [lang="en"], [lang^="en-"] { /* properties */ }
>>
>> If there is no real benefit, should it be dropped from the selectors module? If there is a benefit, please consider adding a note to the draft explaining the benefit.
>
> The only benefit is one of brevity; if you have a longer selector,
> you'd have to duplicate the entire thing.  As noted, though, |=
> predates ^=.
>
> Note as well that you shouldn't be using attribute selectors for the
> lang attribute; use the :lang() pseudo-class instead, as it handles
> some subtleties of language subtag matching better, and lets you match
> multiple languages at once.

:lang() also handles inheritance of the lang attribute.

In some cases this is not what you want, you actually want the element
with the lang attribute, in which case [lang|=] is better, or you can
use [lang]:lang(...) to get the full effect of L4 :lang() matching.

~fantasai
Received on Sunday, 7 September 2014 13:30:25 UTC

This archive was generated by hypermail 2.4.0 : Friday, 25 March 2022 10:08:46 UTC