W3C home > Mailing lists > Public > www-style@w3.org > December 1999

Re: ancestor at-rule

From: Bert Bos <bert@w3.org>
Date: Tue, 7 Dec 1999 21:22:07 +0100 (MET)
To: www-style <www-style@w3.org>
Message-ID: <14413.26912.732889.717526@meta.inria.fr>
Matthew Brealey writes:
> --- Sjoerd Visscher <sjoerd@heeten.nl> wrote:
> > Hi all,
> > 
> > I am using CSS more and more lately, and I notice
> > that I need the following
> > pattern very often:
> > 
> > A B {...}
> > A C {...}
> > A D {...}
> > 
> > I use this f.e. when I have a table that needs to
> > jump out of the rest of
> > the page, and the <TR>,<TD>,<TH> and often also <A>
> > need to be differnt for
> > this case. I do not want to add a class to all these
> > elements, so I only add
> > a class to the table, which results in the following
> > css:
> > 
> > TABLE.special TR {...}
> > TABLE.special TH {...}
> > TABLE.special TD {...}
> > TABLE.special A {...}
> > 
> > This is not only clumsy and ugly, it is also very
> > slow. (As was demonstrated
> > by similar cases in the UI of Mozilla)
> > 
> > To solve this I'd like to introduce the following:
> > 
> > @has-ancestor TABLE.special {
> >     TR {...}
> >     TH {...}
> >     TD {...}
> >     A {...}
> > }
> > 
> > This makes the rule matching much faster, because a
> > UA only has to look for
> > matches in the subtree of TABLE.special elements.
> > 
> > If anyone has a better solution (especially when
> > it's done with CSS2) please
> > let me know.
> 
> Apart, obviously from TABLE.special *, there is none,
> and neither should there be IMHO.
> 
> CSS extensions should be limited to those that allow
> us to do what we couldn't do using CSS before, so IMO
> this is barely an improvement, since it would be
> almost as quick to have 
> > TABLE.special TR {...}
> > TABLE.special TH {...}
> > TABLE.special TD {...}
> > TABLE.special A {...}
> than have to bother with an @ rule as well.

I agree. Maybe the @rule saves a few keystrokes, but I doubt if it is
actually any easier to read (or type). I think adding a comment or
laying out the style sheet carefully is just as good.

In my experience, style sheets aren't long and complex enough to need
any internal structuring.

A little bit of redundancy is not a problem. I suspect that if you
include the time you spend thinking about what to put after the @-rule
and how many {}-pairs you need, you can actually type the 4 or 5
repeated selectors quicker.



Bert
-- 
  Bert Bos                                ( W 3 C ) http://www.w3.org/
  http://www.w3.org/people/bos/                              W3C/INRIA
  bert@w3.org                             2004 Rt des Lucioles / BP 93
  +33 (0)4 92 38 76 92            06902 Sophia Antipolis Cedex, France
Received on Tuesday, 7 December 1999 22:41:04 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 27 April 2009 13:54:01 GMT