Hallo,
Wo sollen bei Border in <TD> laut W3 die border hin?
Der Innenraum der <TD> bekommt seinen per width zugewiesenen Platz und die Rahmenstärke entweicht zwischen die Zellen bzw. am Rand nach außen. Insgesamt ist die Tabelle also größer.
Scheinbar nicht, einige Browser schränken die Zellengröße um die Hälfte der Rahmenstärke ein, die andere Hälfte »entweicht« nach außen (eventuell in andere Zellen). Ob das vorgeschrieben ist, habe ich noch nicht detailliert in Erfahrung gebracht (http://www.w3.org/TR/REC-CSS2/tables.html#collapsing-borders/http://www.edition-w3c.de/TR/1998/REC-CSS2-19980512/kap17.html#heading-17.6.2). Soweit ich die Specs verstehe, ist es gewollt, dass der Rahmen auch über die Grenzen der Tabelle hinausragt, wodurch jedoch im Gegensatz zu anderen Blockelementen der Rahmen sogar außerhalb des Elternelements angezeigt werden kann.
Die Höhe und Breite wird durch die Zellenrahmen eingeschränkt, dadurch ist die Zelle theoretisch immer noch gleich groß (die Browser messen an verschiedenen Stellen), aber der Inhalt wird gestaucht (wiederum je nach Browser). Dies scheint jedoch ein nicht standardgemäßes Verhalten zu sein (?).
Wenn ich mich nicht irre, gilt allgemein:
Gesamtbreite = MarginLinks+BorderLinks+PaddingLinks+Width+PaddingRechts+BorderRechts+MarginRechts,
Meinen Untersuchungen nach gilt dieses Modell für Tabellenzellen in einer Tabelle mit border-collapse:collapse nicht - zumindest machen vier Browser vier verschiedene Visualisierungen daraus. Das angegebene padding sowie width ist keinesfalls sicher.
Zwei Beispiele:
Testfall und Screenshots: http://home.t-online.de/home/dj5nu/fanhost/css-tabellenrahmen.html
Testfall: http://home.t-online.de/home/dj5nu/fanhost/css-tabellenrahmen2.html
Bilder der jeweiligen Darstellung:
http://home.t-online.de/home/dj5nu/fanhost/css-tabellenrahmen2-mozilla13a.png
http://home.t-online.de/home/dj5nu/fanhost/css-tabellenrahmen2-msie6.png
http://home.t-online.de/home/dj5nu/fanhost/css-tabellenrahmen2-opera605.png
http://home.t-online.de/home/dj5nu/fanhost/css-tabellenrahmen2-opera7b2.png
Ich werde noch weitere Untersuchungen unternehmen und eventuell einen neuen Thread dazu aufmachen. Momentan lässt sich scheinbar nicht vom Code eindeutig auf die Darstellung schließen - scheinbar spinnen alle untersuchten Browser mehr oder weniger herum.
Aber eigentlich kannst Du das ja mal ausprobieren: konstruiere eine Tabelle mit allen möglichen CSS-Angaben und messe dann anhand eines Screenshots aus, wieviel größer die Tabelle/Zelle ist, als in width angegeben.
Siehe oben. Wenn davon ausgegangen wird, dass die Hälfte des Rahmens innerhalb der Zelle angezeigt wird, dann würde, angenommen der Rahmen ist im Schema drei Zeilen hoch (durch Sternchen gekennzeichnen), nur ein drei Zeilen hoher Zelleninhalt gezeigt, wobei die Zelle selbst trotz der Überlappung des Rahmens in den Zelleninhalt hinein weiterhin fünf Zeilen hoch ist (gestrichelte Mitte des Rahmens):
******************* <-+
*-*-*-*-*-*-*-*-*-* <-+ | Rahmenbreite
******************* | <-+
| | | <-+
| TEXT | | Zellenhöhe | Tatsächlich angezeigte Höhe
| | | <-+
******************* | <-+
*-*-*-*-*-*-*-*-*-* <-+ | Rahmenbreite
******************* <-+
Grüße,
Mathias
»(...) hier ist ja alles voll Gelegenheiten. Nur gibt es freilich Gelegenheiten, die gewissermaßen zu groß sind, um benützt zu werden; es gibt Dinge, die an nichts anderem als an sich selbst scheitern. Ja, das ist staunenswert.«
http://www.kafka.org/projekt/schloss/erst.html