- From: Leif Halvard Silli <xn--mlform-iua@xn--mlform-iua.no>
- Date: Wed, 30 Sep 2009 02:06:51 +0200
- To: Boris Zbarsky <bzbarsky@MIT.EDU>
- CC: public-css-testsuite@w3.org, www-style list <www-style@w3.org>
Boris Zbarsky On 09-09-30 00.32:
> On 9/29/09 1:58 PM, Leif Halvard Silli wrote:
>> Here is a text proposal:
>>
>> "If the universal selector is not the only component of a sequence of
>> simple selectors and if it also is without the namespace component, then
>> the universal selector may be omitted."
>
> This sounds fine to me, though not strictly necessary. The "universal
> selector" is not '*' in Selectors but "an optional namespace component
> followed by '*'".
And that is why I said "and if it [the universal selector] is
without the namespace component". The draft: "an optional
namespace component is now allowed in element type selectors, the
universal selector and attribute selectors".[*] Given the selector
sequence 'dc|*[attr]', then dropping the universal selector (dc|*)
would be risky. What is the not strictly necessary that I said?
> Which means that while you can omit the whole thing,
> you can't just omit the '*' and include the namespace component,
> Webkit's behavior to the contrary notwithstanding.
What seems strictly necessary is to better the CSS 3 Selectors
text which, by quoting CSS21, is focusing on the "*" character:
"If the universal selector is not the only component of a sequence
of simple selectors, the * may be omitted."
That appears tautological and only means you can't drop the '*'
here: *{}. With a kind reading, it also means that you can't drop
the second '*' here: *|*{}. If you do not have enough baggage,
then it means that you can drop the second "*" here: *|*{}. If you
have too much CSS 21 baggage then it means that you can drop the
second '*' here: *|*[attr].
Now, you formulated the question: when can we drop the
universal selector? However, perhaps the question that CSS 3
Selectors tries to answer in that sentence is when we can drop the
'*'? (Which is when dropping is guaranteed to not affect the
selection.) If so, then the text could be reformulated e.g. like this:
"When the * character is the only component of the universal
selector, except when the universal selector is the only simple
selector in the sequence, then the universal selector may be
omitted from the simple selectors sequence.
[*] The draft speaks of the namespace component as an optional
component of the simple selectors components: a component of a
component. http://www.w3.org/TR/css3-selectors/#changesFromCSS2
--
leif halvard silli
Received on Wednesday, 30 September 2009 00:07:26 UTC