- From: Tab Atkins Jr. <jackalmage@gmail.com>
- Date: Wed, 29 Feb 2012 15:54:27 -0800
- To: Chris Eppstein <chris@eppsteins.net>
- Cc: www-style@w3.org
On Wed, Feb 29, 2012 at 3:42 PM, Chris Eppstein <chris@eppsteins.net> wrote:
> I was reading through http://dev.w3.org/csswg/css3-hierarchies/ and noticed
> that there was no provision for nesting an @media directive inside a
> hierarchical selector context.
>
> In Sass we let @media be nested in any selector and then "bubble" that
> @media query to the top level.
>
> For example:
>
> .context {
> & .module {
> float: left;
> width: 50%;
> @media all and (max-device-width: 500px) {
> float: none;
> width: auto;
> }
> }
> & p {
> color: #333;
> }
> }
>
> Would be translated to:
>
> .context .module { float: left; width: 50%; }
> @media all and (max-device-width: 500px) { .context .module { float: none;
> width: auto; } }
> .context p { color: #333; }
>
> similarly, selectors are transparent across the @media boundary:
>
> .context {
> @media all and (max-device-width: 500px) {
> & .nested {
> color: red;
> }
> }
> }
>
> becomes:
>
> @media all and (max-device-width: 500px) { .context .nested { color: red; }
> }
>
> I think it would be great to amend this spec to make @media (and other
> at-rules?) valid inside a hierarchical selector context.
Presumably all the at-rules defined in CSS Conditionals would be useful.
Allowing a ruleset and allowing an at-rule are basically the same,
once you've committed to changing the grammar. It would be pretty
weird if you could nest rulesets in at-rules (like you can now),
at-rules in at-rules (like Conditionals allows), rulesets in rulesets
(like Hierarchies allows), but not at-rules in rulesets.
This would also require the grammar of those at-rules to accept
declarations instead of just rulesets, when they're nested inside of a
ruleset already. Otherwise you'd be forced to nest an additional
"&{...}" in there.
Overall, I approve.
~TJ
Received on Wednesday, 29 February 2012 23:55:15 UTC