- From: Tantek Çelik <tantek@cs.stanford.edu>
- Date: Fri, 13 Dec 2002 15:42:00 -0800
- To: <www-style@w3.org>
On 12/13/02 11:58 AM, "L. David Baron" <dbaron@fas.harvard.edu> wrote:
>
> On Friday 2002-12-13 19:00 +0000, Ian Hickson wrote:
>> On Fri, 13 Dec 2002, REFSTRUP,JACOB (HP-Vancouver,ex1) wrote:
>>>
>>> p {color: green; /* missing "}" */
>>> q {color: blue;}
>>> samp {color:red;}
>>
>> That should parse as something like (froom memory):
>
> It doesn't parse, since there's no ending brace to match the beginning
> brace on the first line.
It is a misconception that you must match random braces everywhere when
parsing CSS. See CSS1 section 7.1 for precise specifics on when "blocks"
(as defined in 7.1, {...} ) may appear.
http://www.w3.org/TR/REC-CSS1#forward-compatible-parsing
In particular, nowhere does it say that that a brace is permitted as part of
a declaration, except as part of the value of declaration.
Thus the above style sheet should be parsed as (white space adjusted to
demonstrate parsing):
p { color : green ; q{color : blue ; }
samp { color : red ; }
The second declaration in the p rule is ill-formed, thus ignored, resulting
in the following equivalent style sheet:
p { color : green }
samp { color : red }
Which is precisely what IE5/Mac and IE6/Windows do.
Tantek
Received on Friday, 13 December 2002 18:27:36 UTC