- From: Jonny Axelsson <jax@opera.no>
- Date: Tue, 21 Jan 2003 08:18:14 +0100
- To: www-style@w3.org
- cc: alexgeller@web.de
(I'm not in the Working Group, my opinion only)
On Tue, 21 Jan 2003 02:16:58 +0100, Bjoern Hoehrmann <derhoermi@gmx.net>
wrote:
> The w3c grammer states
> simple_selector:
> : element_name? [ HASH | class | attrib | pseudo ]* S*
> ;
> by which it should be valid and equivalent to: * { font-size:12pt }
> We find an additional semantic constraint in the spec at "5.3 universal
> selector" where is says
> "If the universal selector is not the only component of a simple
> selector, the "*" may be omitted"
> Since this is a grammatical issue they could have written:
> simple_selector:
> : element_name [ HASH | class | attrib | pseudo ]* S*
> | [ HASH | class | attrib | pseudo ]+ S*
> ;
Good catch, but I don't think there should be any room for the Degenerate
Selector (""), and while the grammar might tempt an interpretation of it
being equivalent to the Universal Selector ("*"), 5.3 forbids it.
Appendix D states "It is in some sense, however, a superset of CSS2 as this
specification imposes additional semantic constraints not expressed in this
grammar.", but as you have well described, it can easily be described in
the grammar and IMHO should.
> By the original grammer even the following should be valid
> #myid#anotherid { font-size:12pt }
> Under "5.9 ID selectors"
This one I wouldn't worry too much about. By prose CSS is aware of the
uniqueness of IDs, but there is nothing in CSS to prevent impossible
selectors like :link:visited, nor is there any need for that. It is like
selecting triangles with four corners. I see no philosophical or practical
reasons why a selector that can't return any element should be disallowed.
--
Jonny Axelsson,
Web Standards,
Opera Software
Received on Tuesday, 21 January 2003 02:20:33 UTC