RE: "non-zero top border" in 8.3.1

Actually, as a browser vendor I am just sincerely trying to understand the spec, so that I could properly implement it. If I sounds like I am proposing a change for my own convenience, sorry for wrong impression. My goal is simply to understand the specified behavior, and (ideally) find some implementations to be compatible with.

The test case explores the two second-level bullets under bullet 6 in 8.3.1.
* Firefox and Safari have exactly same behavior. As far as I understand the spec it is compatible with the spec (with the exception of "top border" statement)
* Opera and IE also have matching behavior in this case. However it doesn't follow the first bullet:
        "the top border edge of the box is defined to be the same as the parent's"

It seems to me that the intent of second bullet is something like this:
        "the position of the element is calculated by collapsing its
       top margin and margins of all its children. The position is not
       affected by its bottom margin or any content that follows"

Using the imaginary top border is equivalent to that statement only if the element doesn't have children which change its effective top margin. But if it does, the rule is either confusing or wrong, and I don't see any implementation that would be consistent with both bullets.

However if the rule said "non-zero bottom border", it would match Firefox and Safari, and both would at that point be compatible with both bullets of the spec.

It is of course possible that I still misunderstand what's written in the spec. Please correct me then.

-----Original Message-----
From: Ian Hickson []
Sent: Tuesday, August 28, 2007 11:12 AM
To: Alex Mogilevsky
Subject: RE: "non-zero top border" in 8.3.1

On Tue, 28 Aug 2007, Alex Mogilevsky wrote:
> The change I am proposing would in fact describe Firefox behavior
> exactly.

What? No it wouldn't. The current text is correct. What testcases are you
talking about? Like David said, please demonstrate your case with the many
hundreds of test cases it would take to prove your case before trying to
change the spec here.

> The way it is put now, it doesn't match any browser (since top border
> removes any effect of nested empty blocks).

So? Even if this were true, let's at least give the implementations a
chance to fix their code to match the spec before we start changing the
spec. If we keep moving the goal posts, browser vendors are going to stop
paying attention to us. Can we please leave this alone for several more
years before we start changing everything again?

Ian Hickson               U+1047E                )\._.,--....,'``.    fL       U+263A                /,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'

Received on Tuesday, 28 August 2007 19:29:59 UTC