- From: Tab Atkins Jr. <jackalmage@gmail.com>
- Date: Wed, 29 Feb 2012 17:11:40 -0800
- To: Sylvain Galineau <sylvaing@microsoft.com>
- Cc: "L. David Baron" <dbaron@dbaron.org>, "www-style@w3.org" <www-style@w3.org>
On Wed, Feb 29, 2012 at 5:01 PM, Sylvain Galineau
<sylvaing@microsoft.com> wrote:
> [L. David Baron:]
>> On Wednesday 2012-02-29 15:42 -0800, Chris Eppstein 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;
>> > }
>> > }
>>
>> Just because we could have another way to write something doesn't mean we
>> should. We risk turning the language into perl, i.e., into a language
>> where there are ten ways to express the same thing and thus nobody can
>> read what anybody else writes.
>>
>> I think it's a lot of extra work to implement and it doesn't look like it
>> adds much value.
>>
> I agree with both these points.
I disagreed with this kind of change when I thought of it just in
terms of today's selectors. In other words, the following:
foo {
prop: val;
@media all and (max-device-width: 500px) {
prop: val;
}
}
...isn't much of a win over just moving your @media to the top-level
and repeating your selector:
foo {
prop: val;
}
@media all and (max-device-width: 500px) {
foo {
prop: val;
}
}
But when you put Hierarchies into the mix, and realize that, based on
experience with SASS, developers like writing sheets with lots of
nesting, the difference between embedding a conditional and moving it
out to the top level becomes *much* greater. The "normal" and
conditional code are separated by a much greater amount, and you have
to either decompile the nesting into a normal selector inside the
conditional or repeat all the nesting again inside of it.
~TJ
Received on Thursday, 1 March 2012 01:12:33 UTC