- From: Christoph Päper <christoph.paeper@crissov.de>
- Date: Thu, 29 Mar 2012 13:25:49 +0200
- To: www-style CSS <www-style@w3.org>
François REMY:
> Most of your proposal just doesn't make sense.
It was more a question than a proposal. That’s why I wrote:
>> I haven’t tried to think of use-cases for any of this yet, but attribute names and probably values seem like a natural extension, because like element names they depend on the document language.
So, like you, I think extending ‘*’ to attribute selectors makes the most sense, if anywhere.
> If you want all elements which have an ID, you should use *[id] but, seriously, this don't make sense.
You might want to highlight everything you can link to.
#*::before {content: "#" attr(id); color: red;}
> … *[class]. But, again, this don't make sense.
“.*” might make sense in a complex selector.
> The only useful things I did see in your list are [*] (select any element which has an attribute) and [*=foo] (any element whose an attribute at least has 'foo' as value)
[**=foo]
would match any element that has one or more attributes, at least one of which has a value that contains the string “foo” once or more often.
[*=foo]
would match any element that has one or more attributes, at least one of which has a value that equals the string “foo”.
> Also, please note that [*=*] matches the same thing as [*], and that [foo=*] matches the same thing as [foo].
<bar foo>
Which of the following selectors should match that?
[foo]
[foo=foo]
[foo=true]
[foo=1]
[foo=*]
[*=foo]
By SGML rules – XML does not have this – the abbreviated “binary” attribute is actually an unquoted value with optional attribute name (followed by an equals sign) left out, where often it is the same as the value (counter-example: “<table border>” in HTML4). So only the last selector, maybe the second one and thereby the first and third one should work, but most authors would only ever expect and use the first one. Therefore I tend to agree that “[…=*]” would be redundant, because – at least in common markup languages – attributes cannot be set without a value or with an undefined value.
Received on Thursday, 29 March 2012 11:26:17 UTC