Re: 'initial' | 'inherit' inconsistency

On 10/31/2010 09:35 AM, Eric A. Meyer wrote:
> At 1:48 AM -0700 10/31/10, fantasai wrote:
>
>>> (2) Which properties do not allow initial and/or inherit?
>>>
>>> If the answers are anything but (1) "no, yes" and (2) "none"
>>
>> I believe the answers are indeed (1) "no, yes" and (2) "none"
>
> At 1:58 AM -0700 10/31/10, fantasai wrote:
>
>> The 'initial' keyword is introduced by the CSS3 Values and Units
>> specification. Unless a UA implements that module (which, I remind
>> you, is a WD only and not CR), it will not implement 'initial' for
>> any properties.
>
> Maybe I'm just stupid, but don't those points contradict each other?
> That is to say, "Values and Units" is as you say not CR. Therefore how
> can we say that the number of properties that do not allow initial
> and/or inherit is none? For that matter, how can we even assert the
> inverse?

Let me try this again.

1. The 'inherit' keyword was introduced in CSS Level 2. Since CSS2.1
    forms the foundation of all CSS3 specs, and there is a dependency
    from each CSS3 spec onto CSS2.1, all CSS3 specs include 'inherit'
    as a possible value of their properties. There is no reason not to.

2. The 'initial' keyword is introduced in CSS3 Values and Units. It
    is not included through CSS2.1.

3. If the UA implements CSS3 Values and Units, then it must support
    both 'initial' and 'inherit' on every CSS property it implements,
    regardless of when and in what CSS specification it was introduced.
    Examples:
      - A UA could implement CSS2.1 + CSS3 Values and Units, meaning
        it supports all CSS2.1 properties but no CSS3 properties. In
        this case it must implement both 'inherit' and 'initial' on
        all CSS2.1 properties, even though none of them include
        'initial' in their property value definitions.
      - A UA could implement CSS2.1 + CSS3 Backgrounds and Borders +
        CSS3 Values and Units. In this case, it must implement 'inherit'
        and 'initial' on all properties in both the CSS2.1 and CSS3
        Backgrounds and Borders specifications.

4. If the UA does not implement CSS3 Values and Units, then it won't
    support 'initial' on any property it implements, regardless of
    when and in what CSS specification it was introduced.
    Example:
      - A UA could implement CSS2.1 + Selectors + CSS3 Backgrounds
        and Borders, but not CSS3 Values and Units. In this case, it
        will implement 'inherit' but not 'initial' on all properties
        it supports, i.e. the properties in CSS2.1 and CSS3 Backgrounds
        and Borders.

Including 'initial' in each property definition is not an editorial
matter. It introduces a dependency on the CSS3 Values and Units module.

~fantasai

Received on Sunday, 31 October 2010 17:05:53 UTC