- From: Matthew Raymond <mattraymond@earthlink.net>
- Date: Sun, 19 Nov 2006 07:55:15 -0500
- To: Boris Zbarsky <bzbarsky@mit.edu>, daniel.glazman@disruptive-innovations.com
- CC: Marco von Frieling <teuchlfex@gmx.at>, www-style Mailing List <www-style@w3.org>
Boris Zbarsky wrote: > Marco von Frieling wrote: >> It means: (Try to) Apply the following rules to all elements selected by h1, >> h2 and h3, but not to elements selected by .login h1. > > Or we could allow things other than simple selectors as arguments to :not... > > Note that in your case if the combinator in use were ">" instead of " " you > could already do ":not(.login) > h1". Sadly, ":not(login) h1" doesn't mean the > same thing as "h1:not(.login h1)" would if it existed. Daniel Glazman Wrote: > Boris Zbarsky wrote: >> Or we could allow things other than simple selectors as arguments to >> :not... > > The biggest problems here are (a) the computation of the specificity of > such a selector (b) of course the fact that not(a and b) is not(a) or > not(b). In other words, to do "h1:not(login > h1)", you'd need to do this: | :not(.login) > h1, .login > * h1 { /* Styling. */ } For ".login h1" and "h1:not(login h1)", one would think the following would work: | h1 { /* Common styling. */ } | .login h1 { /* Login styling. */ } | :not(.login) > h1 { /* Styling for non-Login level 1 headers. */ } | :not(.login) > * > h1 { /* Styling for non-Login level 1 headers. */ } | :not(.login) > * > * > h1 { /* ... */ } | :not(.login) > * > * > * > h1 { /* ... */ } | :not(.login) > * > * > * > * > h1 { /* ... */ } | :not(.login) > * > * > * > * > * > h1 { /* ... */ } | :not(.login) > * > * > * > * > * > * > h1 { /* ... */ } | :not(.login) > * > * > * > * > * > * > * > h1 { /* ... */ } | :not(.login) > * > * > * > * > * > * > * > * > h1 { /* ... */ } | :not(.login) > * > * > * > * > * > * > * > * > * > h1 { /* ... */ } | [... On into infinity ...] CRAP!!!
Received on Sunday, 19 November 2006 12:55:43 UTC