Hallo,
Danke für diesen Link. Immerhin verstehe ich es jetzt ...
... und bin versucht, doch wieder zu den Tabellen zurück zu kehren.
Tabellen schützen dich nicht vor zusammenfallenden Außenabständen.
Auf jeden Fall gibt die Wiki-Seite keine simple Lösung her, wie man verhindert, dass die Außenabstände zusammen fallen. Ausgangsvoraussetzung ist: Ich weiß nicht, welches Tag der erste Kind-Knoten ist und was da wiederum drin ist - es muss also mit allem fertig werden, was da kommen kann.
Die Wiki-Seite bietet dir mehrere Lösungen an.
Beim Elternelement kannst du oben einen Innenabstand oder einen Rahmen (der auch transparent sein kann) hinzufügen oder es in einen block formatting context umwandeln (z.B. mit overflow: auto;).
Wenn du zumindest weisst, das das erste Kind nicht gefloatet oder absolut positioniert wird, kannst du auch mit :first-child arbeiten und dem Element padding oder border verpassen.
Dennoch: Vergib bessere Klassennamen,
Die linke Spalte ist links, die mittlere Spalte in der Mitte und die rechte Spalte rechts. Welche Bezeichnungen anstelle von "left", "middle" und "right" würdest Du da vorziehen?
Was, wenn die linke Spalte demnächst rechts oder oben stehen soll? Als Bezeichnung eignet sich die Funktion besser als die momentan gewünschte Darstellung: z.B. Navigation, Inhaltsbereich
vermeide ü (nutze UTF-8),
Du wirst es nicht glauben, aber ich habe speziell für dieses Beispiel erst die üs durch üs ersetzt, weil sich Opera konsequent geweigert hatte, <meta http-equiv="Content-Type" value="text/html; charset=utf-8" /> zu beachten, wenn ich es als html-Datei im htdocs liegen habe - da hatte das html/head/body-Gedöns noch drin gestanden. Das php-Skript gibt den korrekten Header aus, dort benutze ich simples UTF-8 und es funzt.
Die mögliche Fehlerquelle dabei kann ich hier nicht ergründen. Das entsprechende Meta-Element sollte aber als erstes Kindelement des head-Elements vorkommen (title-Element und mögliche Kommentare könnte ja bereits Sonderzeichen enthalten).
Gruß