- From: Etan Wexler <ewexler@stickdog.com>
- Date: Sun, 10 Oct 2004 02:49:56 -0700
- To: www-style@w3.org
Section 4.1.5, "At-rules", in the CSS 2.1 specification (<http://www.w3.org/TR/CSS21/syndata.html#at-rules>): "CSS 2.1 user agents must ignore any '@import' rule that occurs inside a block or that doesn't precede all rule sets." Considering the passage literally, what is the validity of the "@import" at-rule in the following style sheet? @media all {} @import url("http://example.com/style-sheet.css"); If the "@import" at-rule is valid, it seems that the specification has accidentally left a loophole. If the "@import" at-rule is invalid, on what basis is it invalid? Section 4.1.7, "Rule sets, declaration blocks, and selectors", in the CSS 2.1 specification (<http://www.w3.org/TR/CSS21/syndata.html#q10>): "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." Section 4.2, "Rules for handling parsing errors", in the CSS 2.1 specification (<http://www.w3.org/TR/CSS21/syndata.html#ignore>): "In some cases, user agents must ignore part of an illegal style sheet. This specification defines ignore to mean that the user agent parses the illegal part (in order to find its beginning and end), but otherwise acts as if it had not been there." Considering the CSS meaning of "ignore", what is the validity of the "@import" at-rule in the following style sheet? "error" {} @import url("http://example.com/style-sheet.css"); If the "@import" at-rule is valid, it seems that the specification has accidentally left a loophole. If the "@import" at-rule is invalid, can the definition of "ignore" stand as is? -- Etan Wexler.
Received on Sunday, 10 October 2004 09:53:00 UTC