- From: fantasai <fantasai.lists@inkedblade.net>
- Date: Mon, 09 Feb 2009 15:17:06 -0800
- To: Yves Lafon <ylafon@w3.org>
- CC: www-style@w3.org, Bert Bos <bert@w3.org>
Yves Lafon wrote: > > Hi, > Currently, the grammar allows the following: > > #-2bar { color: red } > > #-2bar is recognized as a HASH usable as a selector > > << > simple_selector > : element_name [ HASH | class | attrib | pseudo ]* > | [ HASH | class | attrib | pseudo ]+ > ; > > "#"{name} {return HASH;} > name {nmchar}+ > nmchar [_a-z0-9-]|{nonascii}|{escape} >>> > > But the text says: > << > In CSS, identifiers (including element names, classes, and IDs in > selectors) can contain only the characters [a-z0-9] and ISO 10646 characters > U+00A1 and higher, plus the hyphen (-) and the underscore (_); they cannot > start with a digit, or a hyphen followed by a digit. Identifiers can also > contain escaped characters and any ISO 10646 character as a numeric code > (see next item). For instance, the identifier "B&W?" may be written as > "B\&W\?" or "B\26 W\3F". >>> > > So the text and the grammar are not synchronized. > > Shouldn't selector use a production capturing those requirements, > (something along the line of HASHIDENT = '#' IDENT) instead of HASH? The grammar in general is a lot more lax than what CSS2.1 requires. Bert will have to give you the long explanation, syntax isn't my specialty. :) ~fantasai
Received on Monday, 9 February 2009 23:17:51 UTC