- From: Christian Roth <roth@visualclick.de>
- Date: Mon, 11 Oct 2004 11:48:07 +0200
- To: "www-style Mailing List" <www-style@w3.org>
Etan Wexler wrote: > On Fri, 3 Sep 2004, Christian Roth wrote: >> >> Assuming the following stylesheet: >> >> @import "include.css" { color: red } print; >> .red { color: red; } [...] >My interpretation is that the sheet consists of: > >1. An invalid and ignorable at-rule: @import "include.css" { color: red >} >2. Ill-formed, invalid, ignorable inter-rule junk: print; >3. A valid rule set: .red { color: red; } As to 2. : Where is defined in the spec what ill-formed, invalid, ignorable inter-rule junk is? CSS21 4.1.4 [1] states: "A CSS style sheet, for any version of CSS, consists of a list of statements (see the grammar above). There are two kinds of statements: at-rules and rule sets." Stylesheets (note the "any version" clause) consist of two types of rules: at-rules and rule sets. "print;" must be the start of a rule-set since obviously, it isn't an at- rule. This means that "print; .red" is to be considered the selector part [2], "{ color: red; }" the respective declaration-block. Now, since "print; .red" cannot be parsed as a selector, the following requirement holds true [2]: "When a user agent can't parse the selector (i.e., it is not valid CSS 2.1), it must ignore the {}-block as well." This leaves us with the only possible interpretation of the resulting stylesheet as the empty stylesheet (see also the same interpretation by Ian Hickson, [3]). (This implies, btw., that the W3C CSS Validator does not follow the spec here - already reported). [1] <http://www.w3.org/TR/CSS21/syndata.html#q7> [2] <http://www.w3.org/TR/CSS21/syndata.html#q10> [3] <http://www.w3.org/mid/Pine.LNX.4 .61.0409041120230.9548@dhalsim.dreamhost.com> Regards, Christian.
Received on Monday, 11 October 2004 09:48:49 UTC