- From: Andrew Fedoniouk <news@terrainformatica.com>
- Date: Mon, 17 Mar 2008 00:43:37 -0700
- To: Alan Gresley <alan@css-class.com>
- CC: www-style@w3.org, robert@ocallahan.org
Alan Gresley wrote:
> Andrew Fedoniouk wrote:
>
>> Nothing wrong in principle.
>>
>> div:ltr will match any element that has or is
>> inside element with dir="ltr" defined explicitly. So
>>
>> div:ltr { direction:rtl; }
>>
>> simply means that in this particular div author wants
>> to see rtl text despite of possible ltr environment.
>>
>> May or may not have any sense. The same as here:
>> div[dir="ltr"] { direction:rtl; }
>>
>
> Hi Andrew, I guess you missed my initial reply.
>
> http://lists.w3.org/Archives/Public/www-style/2008Mar/0207.html
>
I simply forgot to respond, my pardon.
>
> 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.
I would like to be able to define
ul { padding:0 0 0 20px; }
ul:rtl { padding:0 0 20px 0; }
in "master style sheet" so this will cover all cases.
It is not possible to build equivalent of proposed :rtl by
using solely [dir="ltr"] for any DOM tree and any element inside it.
<html dir="rtl">
<body>
...
...
<ul>
<li>...</li>
</ul>
...
...
</body>
</html>
That will require infinite set of rules:
[dir="ltr"] [dir="rtl"] * {background:blue}
[dir="ltr"] [dir="ltr"] [dir="rtl"] * {background:blue}
[dir="ltr"] [dir="rtl"] [dir="rtl"] * {background:blue}
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
Received on Monday, 17 March 2008 07:44:10 UTC