CarstenP: padding bei table, padding bei div ?

Beitrag lesen

Hallo Chrisi,

Bei form und div rechnet er die padding: 10px auf die Gesamtgröße der Container, bei table jedoch fällt das padding in den inneren Bereich was zur folge hat das meine Tabellen 10px weniger breit sind wie meine form und div Elemente.

Ich steige auch nicht so ganz dahinter, welches Verhalten nun richtig ist. In den Untiefen von CSS 2.1 findet sich im Abschnitt 17.6.1 The separated borders model der folgende Satz:

"The width of the table is the distance from the left inner padding edge to the right inner padding edge (including the border spacing but excluding padding and border)."

Dieser Satz scheint eindeutig darauf hinzuweisen, daß das bekannte Box-Modell (Gesamtbreite = border + padding + width) auch für Tabellen gilt, das beobachtete Browserverhalten also eindeutig falsch ist (daß der IE "padding" für die Tabelle überhaupt nicht interpretiert, ist Dir aufgefallen?).

Stutzig macht mich aber der direkt nachfolgende Satz, der diesem Satz widerspricht:

"However, in HTML and XHTML, the width of the <table> element is the distance from the left border edge to the right border edge."

Bedeutet das "in HTML and XHTML" nun, daß das HTML-Attribut "width" anders wirkt als die CSS-Eigenschaft "width"?
Oder bedeutet es, daß die Tabellenbreite in CSS eigentlich entsprechend dem bekannten Box-Modell definiert ist, wenn man es auf (X)HTML anwendet aber doch nicht?

Wenn man sich diese Passage im entprechenden CSS2.0-Gegenstück anschaut, wird man feststellen, daß dort dieser einschränkende Satz fehlt. Wenn man nun berücksichtigt, daß CSS 2.1 die "Anpassung von CSS 2.0 an die Wirklichkeit" ist, soll das nun heißen, daß dieser einschränkende Satz die Konzession vom W3C an die Browserhersteller ist, die es bisher nicht geschafft haben, daß Box-Modell für Tabellen korrekt umzusetzen...?

Fragen über Fragen. Es wäre in der Tat schön, wenn ein paar Experten etwas Licht in dieses Dunkel bringen könnten.

Noch mal anders sieht es übrigens aus, wenn man das "Collapsing border model" hernimmt (border-collpase:collapse): padding für table darf hier gar nicht mehr wirken, width für table ist definiert als der Abstand zwischen den *halben* äußeren Tabellenrahmen. Mozilla im Standards Mode ist hier der einzige, der es unter den von mir getestete Browsern richtig macht. Ganz abstrus wird's im Opera: er zieht das padding, das ja eigentlich ignoriert werden sollte, von der Gesamtbreite ab, was nun völlig falsch ist.

Zusammenfassend kann ich bisher eigentlich nur folgendes raten: Vermeide tunlichst padding für Tabellen.

Viele Grüße
Carsten