Re: [CSS 3] Feature Request: Negotiation selector

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