Re: At-rules (@-rules) in @media blocks

* Tantek Celik wrote:
>> So I don't see where forbidding @page in @media makes CSS easier to
>> implement
>
>In CSS2, there is no nesting of @-rules at all.  This greatly simplifies
>@-rule parsing code.  Parsing something of 1-depth is much easier to code
>(read less code, less chance for buggy code etc.) than parsing something of
>n-depths.

Consider

  @media screen
  {
    @rule1 { @rule2 "}" { @rule3 { content: "}" } } }
    h1 { color: green }
  }

How do you parse that accoding to the forward-compatibility rules
without parsing the nested at-rules? In order to ignore some token,
you _must_ parse it to know where it ends and according to the generic
syntax you _must_ parse nested at-rules.

I agree that it is simpler to parse one-level nesting than to parse
abitrary levels of nesting but CSS Level 2 doesn't offer this option,
you _must_ parse it. CSS Level 2 even offers more evil possible
constructs:

  elem { newval: @foo ";}" @bar "{" @baz "@x" { @polar { uri('#') } } }

I fear to test what current parsers do with this ruleset.

I would agree with you, if CSS Level 2 forbid to nest at-rules in the
generic grammar, than you wouldn't have to cope with them, but CSS2
didn't so parsers have to deal with it in order to be forward-compatible
and therefore CSS2 compliant.

>If you could nest 15 levels of @-rules, style sheets would begin looking
>like C++ files, and I don't think you want that.

You won't tell me, that having 15 different style sheets and a base
style sheet with 15 @import rules in order to import all those style
sheets is much simpler and I doubt there are cases where it is
desireable to habe 15 levels of nesting in CSS.

regards,
-- 
Björn Höhrmann { mailto:bjoern@hoehrmann.de } http://www.bjoernsworld.de
am Badedeich 7 } Telefon: +49(0)4667/981028 { http://bjoern.hoehrmann.de
25899 Dagebüll { PGP Pub. KeyID: 0xA4357E78 } http://www.learn.to/quote/

Received on Saturday, 11 August 2001 17:29:53 UTC