- From: Tantek Celik <tantek@cs.stanford.edu>
- Date: Sat, 11 Aug 2001 09:41:10 -0700
- To: Bjoern Hoehrmann <derhoermi@gmx.net>
- CC: Boris Zbarsky <bzbarsky@MIT.EDU>, "www-style@w3.org" <www-style@w3.org>
From: Bjoern Hoehrmann <derhoermi@gmx.net> Subject: Re: At-rules (@-rules) in @media blocks Date: Fri, Aug 10, 2001, 11:35 PM > * Tantek Celik wrote: >>> It >>> just says that "a set of rules" is allowed inside an @media block..... >>> In particular, it seems to me that @page and @font-face rules should be >>> acceptable in @media blocks. >> >>I don't know about "should". From an implementation/simplicity standpoint, >>it is better to disallow @-rules inside @media. > > They are allowed by the generic syntax in section 4.1.1 of CSS Level 2, > so the parser propably recognizes them. No - the parser is supposed to be able to _parse_ them (in case they are allowed in future levels of CSS), but is certainly not supposed to _recognize_ them. > The alternative for @page is, to > quote myself in news:3c2b246b.109342886@news.bjoern.hoehrmann.de in > news:comp.infosystems.www.authoring.stylesheets, where this discussion > was raised: > > | [...] > | @page projection { size: landscape } > | @page print { size: 9cm 18cm } > | > | @media print { body { page: print } } > | @media projection { body { page: projection } } > | [...] > > I won't call that "simple". Even more quoting: > > | [...] > | Not elegant but possible. The alternative is to use external > | > | <link media="print" ... /> > | <link media="projection" ... /> > | > | information. > | [...] > > That would for the implementation be basically the same thing as > > @media print { @page { /* ... */ } } > @media projection { @page { /* ... */ } } No no. Just use media dependent @import and stick the rules in separate style sheet. Works fine today for UAs that support @import and @page. @import "printsheet.css" print; @import "projsheet.css" projection; ... /* printsheet.css */ @page { /* ... */ } ... /* projsheet.css */ @page { /* ... */ } > 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. > or "simpler" for authors :-) It makes style sheets easier to read. CSS is supposed to be easy to write AND read. If you could nest 15 levels of @-rules, style sheets would begin looking like C++ files, and I don't think you want that. Tantek
Received on Saturday, 11 August 2001 12:40:29 UTC