Re: Inheritance for border-color - All browsers wrong except Opera 7?

Rijk wrote on Thursday, January 16, 2003 at 7:25:00 PM:

>> Kevin W wrote:
>>
>>> http://www.hixie.ch/tests/adhoc/css/inheritance/border-color/001.xml
>>>
>>> Should the border of <inner> be green or red? Here is the CSS:
>>> test { display: block; color: red; border: none; }
>>> test > inner { border-color: inherit; border-style: solid; color:
>>> green; }

It should be red. It would be green with this (slightly different)
CSS:

  test { display: block; color: red; border: none; }
  test > inner { border-color: inherit; border: solid; color: green; }

Or this (CSS3):

  test { display: block; color: red; border: none; }
  test > inner { border-color: initial; border-style: solid; color:
  green; }

In the first example, the border property sets the value of
border-color back to the initial value. In the second example, the
border-color property is explicitly set to the initial value. In both
cases, the common difference is that the border-color property isn't
using a value of inherit. In the first case, it's overridden, and in
the second case, it's never used at all.

So I think the page is wrong, and the initial value shouldn't be used
(for the inner element), unless I'm missing something. And I
definitely could be. :)

                              *  *  *

Why red? The inherited value of the border-color property on the inner
element is the *computed* value of the border-color property on the
test element. The initial value of the border-color property is the
value of the color property (see CSS2 section 8.5.2). The value of the
test element's color property is red, which means the value of the
test element's border-color property is also red, which means the
value of the inner element's inherited border-color property is also
red. The inner element never touches the initial value of the
border-color property, which means it shouldn't be green.

-- 
John

Received on Thursday, 16 January 2003 22:10:49 UTC