RE: [CSS3] ltr and rtl pseudo-class proposal

Andrew Fedoniouk wrote:

> I simply forgot to respond, my pardon.


Well I was incorrect. Don't we often ignore ridiculous suggestions and just pretend we didn't see it. :-)


> > Anyhow, to put an end to this whatever, please see this text case.
> > 
> > http://css-class.com/test/css/selectors/attribute-dir1.htm
> > 
> > 
> > [dir="ltr"] {background:red}
> > [dir="ltr"] [dir="rtl"] {background:blue}
> > 
> > 
> > It will work in most UAs.
> > 
> 
> Alan, first of all you've forgot about the case:
> 
> <body dir="rtl">
>    <h1>Hello</h1>
> </body>
> 
> and the second:
> 
> Selector *:rtl means exactly following:
> "element that has nearest parent (including itself)   with defined 
> attribute @dir and that @dir attribute has exactly "rtl" value.
> 
> In other words: :rtl matches *any* element in rtl environment 
> established by itself or one of its parents.
> 
> That is different from what you have defined.


Pseudo-classes are slightly different.

li:hover a {background:red}
li:focus a {background:red}
li:rtl a {background:red}

Then I could have.

li:hover {background:blue}
li:focus {background:blue}


All the above occurs after a user action. This is not a user action

li:rtl {background:blue}

but rather an attribute belonging to the source. How can this be described as a pseudo-class? You are talking about a parent or ancestor element with a particular attribute. Almost no selector like that exist in CSS at this current time.


[...]
> In general request "element with nearest parent having defined A of 
> exactly value S" is not solvable in terms of CSS selectors for arbitrary 
> elements / DOM trees.
> 
> -- 
> Andrew Fedoniouk.
> 
> http://terrainformatica.com


I did give the following example in my reply to Fantasai.

*<[dir="rtl"], * *<[dir="rtl"] {background:lime}


That is all wrong because really I want something more like this (disregard the syntax).

*~<[dir="rtl"] {background:lime} /* the first ancestor encountered with rtl direction */


Moving back to the pseudo-class example.


a:focus<li<ul {background:lime}


But I have seen this as


ul(li>a:focus) {background:lime}


which would style the element before the string of descenders. I won't try that with your proposal since it would be nonsense. Your proposal operates more like namespace selectors.


[dir="rtl"]|li {background:lime}


Alan

http://css-class.com/test/

Received on Monday, 17 March 2008 11:46:35 UTC