Josh Ghiloni wrote:

> I have a bit of code that, for example, looks like this:
>
> <style type="text/css">
> div { color: blue }
> div[dir="rtl"] { color: red }
> </style>

First of all, I'd like to say that most "questions about style 
inheritance" aren't. In you example, there is no way in which any div 
element could inherit a value for the color property. The first rule 
makes sure that when this style sheet is used, every div element has the 
color property directly assigned to it, and this means that inheritance 
is _out_ for it. (_Other_ elements inside a div element may inherit the 
color property from it.)

Second, I hope that you know that IE 6 does not support attribute 
selectors, and it's probably still the most widely used browser. It 
would ignore your second rule and apply the first one. The same applies 
even to IE 7 in "Quirks Mode".

> <div dir="rtl">
> hi!
> <div>bye!</div>
> </div>
>
> As I somewhat expected, the outer (hi!) text rendered red, whereas the
> inner child is rendering blue.

On supporting browsers, yes.

> Is there a way I can define my styles
> such that div[dir="rtl"] and any children (at any level and whose dir
> is not explicitly "ltr") all match the same style?

Do you mean any children by "any children"? Then you can write

div[dir="rtl"], div[dir="rtl"] * { color: red }

Or if you mean just div children of a div element that has dir="rtl", 
you'd write

div[dir="rtl"], div[dir="rtl"] div { color: red }

However, these imply that if you have

<div dir="rtl">
   <div dir="ltr">
      ...
   </div>
</div>

then the rule would still apply to the inner div, i.e. the dir="rtl" 
would not prevent the selector from applying to it.

> Alternatively, is
> it bad form to not explicitly set the dir attribute on the divs inside
> a div whose dir attribute is "rtl"?

I don't quite follow... how would that be bad form? The dir attribute is 
by default inherited in the HTML sense, and has dir="ltr" as the 
default, and it is common practice to omit it altogether unless you have 
some right to left text, in which case one normally sets dir="rtl" for 
the outermost element.

Jukka K. Korpela ("Yucca")
http://www.cs.tut.fi/~jkorpela/ 

______________________________________________________________________
css-discuss [EMAIL PROTECTED]
http://www.css-discuss.org/mailman/listinfo/css-d
List wiki/FAQ -- http://css-discuss.incutio.com/
List policies -- http://css-discuss.org/policies.html
Supported by evolt.org -- http://www.evolt.org/help_support_evolt/

Reply via email to