- From: Glen Huang <curvedmark@gmail.com>
- Date: Wed, 15 Apr 2015 19:50:41 +0800
- To: "Tab Atkins Jr." <jackalmage@gmail.com>
- Cc: www-style list <www-style@w3.org>
I see the rationale. Thanks. You mentioned the possibility of custom media being redefined. I can't help but wonder how it works: ``` @import "def.css"; @import "redef.css" (--foo); @import "foo.css" (--foo); ``` def.css ``` @custom-media --foo true; ``` redef.css ``` @custom-media --foo false; ``` Will this cause "foo.css" not being imported? Also, being able to using custom media in other places sounds wonderful, but does it have to be specified in a <meta>? Could a <style>, placed at an early position of <head>, containing the custom media definitions, be enough to make the custom media queries available document wide? > On Apr 8, 2015, at 8:37 AM, Tab Atkins Jr. <jackalmage@gmail.com> wrote: > > On Wed, Apr 1, 2015 at 10:21 PM, Glen Huang <curvedmark@gmail.com> wrote: >> Currently, the CSS Cascading and Inheritance Level 4 spec says the only rule allowed before @import is @charset. I wonder if custom mq could be allowed too? >> >> ```css >> @custom-media --narrow-window (max-width: 30em); >> @import “style.css” (--narrow-window); >> ``` > > I get where you're coming from, but this partially defeats the purpose > of the "@import must come first" restriction, which is to keep the > interleaving of imported stylesheets simple. Right now, you can > pretend that @import'd stylesheets are completely separate sheets that > appear just before the importing sheet in document order (except for > the effects of @charset). This makes implementation simpler - all > rules/etc from a given sheet are guaranteed to be totally before/after > the rules in any other sheet, not interleaved in ways that require > more complicated tracking. > > If we allowed @custom-media first, though, then we have to worry about > this more complicated interleaving, since the imported sheet might > define --narrow-window as well (overriding the definition in the > importing sheet). This isn't circular or anything, but it is > complicated in ways that we currently don't have to handle in > implementations. > > That said, I think it's valuable to be able to use custom MQs in very > wide contexts, including in HTML (for <link media>, <picture><source > media></picture>, etc), and so I think I need to define a <meta> value > that defines a custom MQ as well, so you can easily define > document-wide MQs. (This would also make them accessible to the > preload scanner for <picture> purposes, which is great.) > > ~TJ
Received on Wednesday, 15 April 2015 11:51:14 UTC