Sönke Tesch: Problem mit IE 6.0 - Fehler in meinem CSS oder IE-Fehler?

Beitrag lesen

was es mir bringt, wenn ich auf <br> verzichte und stattdessen überall <p> verwende, kann ich nicht so ganz nachvollziehen.
hast du da eine erklärung für mich?

Das ist ein prinzipielles Problem. Natürlich kannst Du dasselbe Aussehen auch mit soundsoviel <br> erreichen. Aber genauso gut könntest Du diese Seite ziemlich exakt gleich mit althergebrachtem Tabellenlayout hinbekommen, also warum benutzt Du CSS und <div>? Im Grunde könnte man auch fast alles mit nur einem Element machen: <font>.

Der Punkt ist, daß HTML keine optische Aussage hat, sondern eine inhaltliche - zum Beispiel ist <h1> kein "großer, kursiver Text", sondern die Hauptüberschrift.
Dementsprechend ist der Gebrauch von <br><br> hier logisch gesehen falsch, denn für einen Absatz gibt es <p></p>. <br> ist für eine einfache Zeilenschaltung gedacht, nichts anderes.

dass es für eine überschrift sinnvoller ist <hx> zu verwenden, kann ich dagegen verstehen.

Du kannst das <div> um die Überschrift auch wegglassen; <h1> ist genauso ein Blockelement wie <div>. Es ist also wiederum die Situation, die Du schon bei der Grafik hattest.
Und verwende bitte <h1> für die Hauptüberschrift der Seite, nicht <h5> (siehe oben, es macht inhaltlich keinen Sinn).

für das logo verwende ich <div>. so muss ich es nciht in jeder datei einzeln austauschen, wenn sich etwas ändert.

Falscher Platz. Tausche die Logografik (lies: Grafikdatei) aus, wenn Du das Logo austauschen willst, oder verwende Server Side Includes.

Noch eine Ergänzung zu Deiner Menüliste, da Du jetzt eh schon dran gebastelt und es damit IMHO nur noch verschlimmbessert hast: Benutze <li> und formatiere die Elemente mit

li { list-style-type:none; margin:0; padding:0; }
  ul { margin:0; padding:0; }

Dann hast Du eine Liste, die aussieht, wie Deine <div>- oder <br>-Liste jetzt, aber auch tatsächlich eine Liste ist.

das springen der seite habe ich aber leider immer noch nciht wegbekommen.

Den oberen Abstand mit 100 Pixel anzugeben ist nicht so sonderlich klug, weil dann die Seite bei einigen Fenstergrößen nur halb zu sehen ist.

Da Du eh alle Elemente mit festen Pixelgrößen angeben willst (was ich nicht sinnvoll finde, da die Seite dann nur auf Deinem Monitor passt, aber das tut jetzt nichts zur Sache), solltest Du nochmal versuchen, die float:s rauszunehmen und stattdessen position:absolute benutzen.
Das gilt auch für den äußeren Container #frame; wenn Du eine Position haben willst, verwende top, left, right und/oder bottom, aber nicht margin (oder padding).

Beachte auch, daß Du statt beispielsweise top und height auch top und bottom angeben kannst. Mit diesem Schema passt sich ein Element automatisch an seine Umgebung an. Verwende es unbedingt bei den inneren Elementen, so daß Du nur noch bei #frame ein tatsächliche Breiten- und Höhenangabe hast.

Wenn Du Lust hast, kannst Du auch nochmal die CSS-Angaben für die <a>s komplett herausnehmen und dann Stück für Stück wieder reinsetzen, um zu beobachten, bei welcher Angabe die Seite anfängt zu springen. Damit hättest Du das Problem zumindest schonmal eingekreist - vielleicht ergibt sich daraus ja etwas.

Gruß,
  soenk.e