Hi Tim,
also, lange Zeit habe ich die Vorschläge zur Ersetzung von Frames durch CSS-Positionierung mit Interesse gelesen, bis ich's selbste versucht habe ;-)
Wobei ich dann eher einer Lösung mit
CSS und position:fixed zuneigen würde.
Dummerweise gibt es Browser, sie nennen sich u.a. Internet Explorer, in denen das nicht funktioniert.
Mal ehrlich, ist das dann ein seriöser Vorschlag? Ich meine nicht Dich persönlich, aber führt die Vorliebe zu CSS aus _prinzipiellen_ Gründen nicht inzwischen zu einer wirklichen Irreführung über die realen Möglichkeiten von browserübergreifender, produktiver CSS-Positionierung? Und: Hast Du Dir das Layoutkonzept mal angesehen, ganz egal, ob es Dir gefällt oder nicht, möchtest Du das wirklich mit Divs nachbauen?
Natürlich kann man in fast jedem Browser ein DIV halbwegs zuverlässig in bestimmter Größe auf den Bildschirm pappen, aber alle weitergehenden Techniken sind sehr schwer browserübergreifend umzusetzen, wenn man nicht sehr große Abstriche bei der Spannweite der Darstellungen, die entstehen, macht. Zudem ist diese Technik angesichts der nötigen Crossbrowserüberlegungen in der Praxis langsamer als die traditionellen Konstrukte.
Hat jemand mal einen Link für ein CSS-Layout, dass ein Framelayout nachbildet und in allen gängigen Browsern sauber funktioniert? Das fände ich nützlich. Gern würde ich auch eine entsprechende Anweisung als Tipps&Tricks-Artikel veröffentlichen. Wär doch toll, wenn wir den ganzen Frame-Ärger loswürden! Aber bitte nicht einzelne Workarounds, sondern ein konsistentes Modell, sagen wir mit einem einfachen feststehenden Menu links, einer feststehenden Titelzeile und einem scrollbaren Inhaltsbereich. Unterstützt werden sollten NS 4.7, 6 und 7, IE ab 5.0, Mozilla und Opera, ich weiß nicht genau, welche Version hier die letzte zu berücksichtigende ist. Und bitte nicht Ausreden wie´: "Immerhin sieht dann der Netscape-Nutzer alle Inhalte, wenn auch mit einem Groblayout." oder "Genau geht es natürlich nicht." Warum dann nicht in 30 Sekunden ein entsprechendes Frameset definieren? Wenn das zuviel verlangt ist, finde ich solche Empfehlungen unseriös.
Mir fehlt angesichts der Workarounds; Bugtabellen und Browserweichen, die ich mir inzwischen aus diversen Quellen zusammengesucht habe, auch eine Kritik am Bestand und der Konsistenz der CSS-Positionierungsbefehle. Nehmen wir mal ein simples Beispiel: Ich möchte einen Text in einem Div mittig ausrichten, und zwar horizontal. Text-align ist mein Freund? Weit gefehlt: Wirklich funktionieren tut's nur in einer Tabellenzelle, weil es sich nur auf die relative Höhe bestimmter anderer Elemente bezieht. Lustig, dass es vor allem Tabellenzellen sind, die ja angeblich nicht mehr als Mittel zum Layout genutzt werden sollen. Workarounds gibt's verschiedene, etwa ein Leerzeichen mit einer line-height, die der Höhe des Divs entspricht, per span definiert als Bezugspunkt. Aber erstens: Wo bleibt jetzt die angestrebte Klarheit und zweitens: Welche Folgen hat das, wenn man in dem Div weitere Elemente positionieren will?
Meine Skepsis gegenüber der Behauptung, es ließe sich jedes normale traditionelle Layout mit CSS-Positionierungen + Workarounds mit erträglichem Aufwand für alle Browser realisieren, wächst mit zunehmender Kenntnis der Probleme.....
Viele Grüße
Mathias Bigge