table border collapse and margins ins CSS2.1

Section 17.6.2 of the CSS2.1 specification
(http://www.w3.org/TR/CSS21/tables.html#collapsing-borders)

contains the  sentence:

Note only half of the two exterior borders are counted in the table
width; the other half of these two borders lies in the margin area.

When tested with the following testcase:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
             "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>bc width</title>
<style type="text/css">
body {
   margin-left:2cm;
}
table {
   border-collapse:collapse;
   width:200px;
   border:20px solid;
}
div {
   border: 1pt solid blue;
   width:200px;
   height:20px;
}
</style>
</head>
<body>
<div></div>
<table><tr><td>foo</td></tr></table>
</body>
</html>

I can't find two interoperable implementations that follow that line.

The sentence raises first the question where does that margin area come
from? If the sentence remains in the spec that should be clarified. Do
those margins collapse? Where do the usual margins start. Or is the
author required to add the necessary margins to have enough space for
those parts of the border that extend into the margins area.

The current behaviour of mozilla in the standards mode tries  to follow
the sentence. As the margins are 0 the border overlaps the div above and
is on the left and right side by half a border wider than the div.
Opera7.0b1 overlaps also the div but is not wide enough. What konqueror 
uses a basis for the width calculations is unclear for me (its far to 
wide). IE and mozilla in the quirks mode compute the width as outer 
border width and seem to be two interoperable implementations. (Please 
apologize if your favourite browser is not mentioned, thats all that I 
could test.)

I propose to remove the sentence from the specification as there are no 
two interoperable implementations and to adapt the specification to the 
IE/mozilla quirk rendering as far as width is concerned.

If that is not possible, a clarification for the margin handling is 
mandatory as it violates the margin handling elsewhere in the CSS2.1 
specification.

Bernd

Received on Sunday, 12 January 2003 06:13:49 UTC