Hallo,
@Cyx23:
also gegen eine Tabelle spricht zum einen mein Prof. *g*, da er der Meinung ist, dass mit Div-Tags alles realisierbar ist, was auch eine Tabelle kann und sogar noch mehr.
Stimmt ja auch zum großen Teil.
Zum anderen sind Tabellen, und da hat er recht, eigentlich nie zur Layoutgestaltung gedacht gewesen.
Leider vermisse ich den tabellarischen Zusammenhang der Boxen bzw. die vollständige, korrekte Unterstützung des Standards durch alle Browser. Wäre dies der Fall könnte man dies zumindest über diese Display Variante lösen.
@ingo
Da ich diese dynamisch errechne, ist zum Definitionszeitpunkt die Gesamtbreite normalerweise nicht bekannt (könnte man natürlich u.U. vorab schonmal berechnen).
»wie berechnest Du das denn? HTML und CSS sind keine Programmiersprachen und wenn Du nicht ausschließlich Bilder verwendest, können Dir die exakten Dimensionen auch nicht bekannt sein. Bleibt Javascript - Nur Pech, wenn das deaktiviert ist.
ich generiere die komplette Site, also auch mein Layout per PHP -> ist so ne Art CMS
(javascript mag/nutze ich nicht -> wegen der Gründe die du genannt hast)
IE: das letzte Element einer Zeile hat immer einen Abstand von 2-3 Pixeln zum Vorletzten.
»Hört sich nach dem 3-Pixel-Bug oder falsch interpretierten Whitespaces an.
3-Pixel-Bug kann eigentlich nicht sein, da ich den unverändert probiert habe, also einen Teil meines des Quelltextes verändert hab.
habe das so gemacht:
-> * html div#inhalt{ height: 1em; /* Workaround gegen den 3-Pixel-Bug des Internet Explorers */ }
Dummerweise muss das float:left entfallen, da sonst die 2.te Zeile nicht realisierbar ist bzw. der Anfang von der Bildschirm-Auflösung abhängt.
»Und wie sollte das sonst (ohne Positionierung) gehen?
Ja genau, es geht nicht anders ohne ein Auflösungs-abhängiges Ergebnis zu erzeugen.
Firefox/Opera:
Noch schlimmer, da das letzte Element (ohne float:left) auf die neue Zeile hüpft und dort dessen Inhalte vom nächsten Feld überschrieben werden.
»Das klingt nach absoluter Positionierung und Berücksichtigung nur des falschen MS-Boxmodells.
Leider ists nicht so, da wird nirgends ein 'absolute' vergeben und trotzdem bricht Firefox um bzw. legt es auf die nächste Zeile. Das ist ja gerade das größte Problem. Bei Firefox könnte man zwar dieses Feld leer lassen, sodass kein Überschreib-Effekt auftritt, nur wird es ja beim IE dahinter geklebt (meiner Meinung nach die korrekte Position, denn sonst kann man sich die Angabe sparen).
- Variante: Definition mit 'absolute'
Das umgeht zwar das Problem mit dem letzten Feld, sodass eine einheitliche Darstellung auf IE u. Firefox/Opera erfolgt, dafür verliert man jedoch die Möglichkeit der zentrierten Darstellung,
oder etwa nicht?
Die 'absolute' Definition steht ja in der Hierarchie über dem Elternelement, welches für die Zentrierung nötig wäre und würde somit ignoriert.
»Nein. Lies bitte genauer nach, wonach sich die absolute Positionierung richtet.
Upps hier hab ich wohl was verdreht. Sowohl eine Einrückung, als auch eine Zentrierung unter einem Elternelement ist möglich.
Das Problem ist aber, dass nicht der Inhalt zentriert wird, sondern die Startposition. In diesem Fall müsste man wieder die Auflösung kennen.
hat jemand ne Idee wie ich eine tabellarische Struktur am besten mit CSS-Mitteln umsetze ohne dass Browser-Unterschiede zum Tragen kommen?
»Ja. Verwende eine Tabelle oder entscheide Dich für ein sinnvoll umsetzbares CSS-Layout.
*g* naja, die Layouts entwirft ein Dipl. Szenenbildner, da kann ich nicht viel machen.
Problematisch erscheint mir, dass ein CSS-Layout mit nur maximal 3 boxen nebeneinander unproblematisch funktioniert (Ausrichtung links, A.rechts und ohne Angabe mitte). Sobald aber eine vierte Spalte im Spiel ist gibts Probleme bzw. treten Browser-Eigenheiten auf, es sei denn man nutzt 'absolute'.
Scheinbar wird genau aus diesem Grund häufiger auf 2 und 3-Spalten-Layouts eingegangen.
(Naja, ich gebe zu, für die meisten Fälle ist das auch vollkommen ausreichend)
Geht das überhaupt, wenns dynamisch generiert wird (also Zeilen- und Spaltenzahl ab und zu verändert wird)?
»CSS kennt keine Spaltenaufteilung - abgesehen von der tabellarischen Darstellung, die ja vom IE nicht unterstützt wird.
-> wird nun aber z.B. 'drei-spaltiges' Layout genannt, auch wenns eine Box ist
Meine Test-Umgebung
IE: 6.0.29xxxxxxxxxxxxxxxxxxxxxxxxxxxx *g*
Mozilla: 1.0.3
Opera: 7.5.4
»Da fehlt auf jeden Fall der Firefox oder ein aktueller Mozilla sowie der IE 5.5.
upss, da war ich wohl ein wenig nachlässig:
Mozilla Firefox: 1.0.3 sollte das sein
(ein älterer IE -> es geht ja nicht mal mit dem aktuellen, mit den älteren gibts doch noch mehr Probleme)
mfg
,rené