W3C home > Mailing lists > Public > www-style@w3.org > March 2012

Re: <style scoped> and the cascade

From: Tab Atkins Jr. <jackalmage@gmail.com>
Date: Wed, 7 Mar 2012 15:50:36 -0800
Message-ID: <CAAWBYDAGWDvkzNoSypQjxQZwsHZx6C7xZydLn1mQ1bfMiUpKKw@mail.gmail.com>
To: Ian Hickson <ian@hixie.ch>
Cc: HTML WG <public-html@w3.org>, www-style list <www-style@w3.org>
On Wed, Mar 7, 2012 at 2:18 PM, Ian Hickson <ian@hixie.ch> wrote:
> On Wed, 7 Mar 2012, Boris Zbarsky wrote:
>> I've been looking into scoped stylesheets, and I'm not sure that the way
>> the spec currently places them in the CSS cascade makes sense.  If the
>> intent is for them to be used for styling a particular subtree, it seems
>> like they should probably come later than global document sheets in the
>> cascade; otherwise you can end up with global sheets accidentally
>> overriding scoped styles, which makes it difficult to really use scoped
>> styles effectively.
>
> I'm happy to change the scoping to work with new cascade levels, but it's
> hard to spec that cleanly without supporting infrastructure on the CSS
> side, so I'd rather only do that if the relevant CSS specs can first be
> changed to support the concept of multiple nested cascade levels.

Everything you need should already be there - just add the concept of
'scope' to the author origin, such that for any two scoped styles A
and B, if B's scoping element is a descendant of A's scoping element,
B's styles have a higher weight than A's styles. (If A and B don't
have an ancestor/descendant relationship, the relative weighting is
undefined, but they can't ever apply to the same elements anyway.
Note: we should make sure this invariant remains true.) Scoped styles
always have a higher weight than global styles.

Alternately, just say that document order is increasing weight order.

Until we produce a CSS method of defining scoping (@scope rule,
anyone?) I think it's appropriate for HTML to define this.

~TJ
Received on Wednesday, 7 March 2012 23:51:33 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 22 May 2012 03:48:51 GMT