- From: Sylvain Galineau <galineau@adobe.com>
- Date: Fri, 7 Feb 2014 03:04:37 +0000
- To: Tab Atkins Jr. <jackalmage@gmail.com>
- CC: Peter Moulder <pjrm@mail.internode.on.net>, "<www-style@w3.org>" <www-style@w3.org>
On Feb 6, 2014, at 4:51 PM, Tab Atkins Jr. <jackalmage@gmail.com> wrote:
> On Thu, Feb 6, 2014 at 1:29 PM, Peter Moulder
> <pjrm@mail.internode.on.net> wrote:
>> The CSS 2.1 parsing rules (section 4.1.7 paragraph 4 and following) say that if
>> any comma-separated component of a ruleset's selectors is not valid CSS 2.1,
>> then the whole ruleset must be dropped. This seems to be true of css-syntax /
>> css-selectors-4 too (except that the comma-separated components have slightly
>> looser requirements than CSS 2.1, e.g. having some additional combinators).
>>
>> This suggests that the best choice of <combinator-prefix> is actually ‘:’.
>
> You're misreading that. It's stricter than you're implying - using an
> unknown pseudo-class invokes the "doesn't match the grammar"
> condition.
>
> So using : is no safer than using anything else. (And it's way more
> confusing, given the double-duty it's already pulling as an indicator
> of pseudo-classes and pseudo-elements.)
>
> The actual restrictions we're working under are just that the new
> syntax be compatible with CSS's general syntax, which pretty much only
> disallows using {, or using ( without a ). (We can't use [ in any
> case, since it's already used for attr selectors, unless we do
> something weird like [[shadow]].)
>
+1 to not overloading : or ::. Understanding the difference between them is something CSS beginners all go through (that legacy pseudo-elements/classes can be written with a single : does not help though that’s starting to abate). Overloading either to also be a combinator prefix sounds like it’d confuse just about everyone all over again, and make learning harder. (’::first-line and ::shadow are totally different kinds of things!’ ‘Uh?')
Received on Friday, 7 February 2014 03:05:09 UTC