W3C home > Mailing lists > Public > www-style@w3.org > September 1999

Re: Name for default value of border-color needed

From: Ian Hickson <py8ieh@bath.ac.uk>
Date: Wed, 22 Sep 1999 22:06:21 +0100 (BST)
To: Tantek Celik <tantek@cs.stanford.edu>
cc: "L. David Baron" <dbaron@fas.harvard.edu>, cwilso@microsoft.com, www-style <www-style@w3.org>
Message-ID: <Pine.GSO.4.04.9909222152550.22860-100000@mary.bath.ac.uk>
On Wed, 22 Sep 1999, Tantek Celik wrote:
>> Now, suppose the above rule is instead:
>> 
>> DIV {
>>   border: medium solid;
>>   }
>>
>> The first two statements above are still true. However, the
>> following must equal something (and it shouldn't be the empty
>> string because that means the property was not set in the ruleset):
>>    rs.style.getPropertyValue("border-color")
> No, empty is exactly correct. Not setting the border-color means
> that the border gets its color from the 'color' property.

No, not setting the 'border-color' property means that it gets
whatever the cascade gives it. Which (if no rule involves any of the
'border-*-color' properties) means the initial value ("use the value
of the 'color' property)).

> And yes, that does mean that the property was not set in the ruleset
> which is also correct.

But 'border: solid medium' _does_ set the border-color property -- it
sets it to its initial value, which is "use the value of the 'color'
property". Take this example:

   DIV { border-color: red; color: green; }
   DIV { border: solid medium; }

The color of a DIV's border should be green, because the above expands to:

   DIV { border-color: red; 
         color: green; }
   DIV { border-style: solid;  
         border-width: medium;  
         border-color: <initial-value>; }

So, after the cascade is applied, DIV gets:

   DIV { color: green; 
         border-style: solid;  
         border-width: medium;  
         border-color: <initial-value>; }

...because the first 'border-color' declaration gets cascaded out.
(There is an example of this at the foot of chapter 8.)

If 'border-color' is "not set in the ruleset", then the value of
border-color would come from the first rule, i.e., be red. This is not
what is supposed to happen, so clearly 'border-color' _is_ set. The
problem is that there is no keyword representing that value.

-- 
Ian Hickson
: Is your JavaScript ready for Nav5 and IE5?
: Get the latest JavaScript client sniffer at 
: http://developer.netscape.com/docs/examples/javascript/browser_type.html
Received on Wednesday, 22 September 1999 17:06:25 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 27 April 2009 13:54:00 GMT