Layout: sind Tabellen scheisse?
TobiasBuschi
- html
1 Hopsel6 Sven Rautenberg0 Struppi0 Jörg Peschke0 Cyx23
hallo allerseits
ich befasse mich schon lange mit html und stosse immer wieder auf artikel, foren usw. wo die css-container-Layouts so hoch gepriesen werden und die Tabellen- Layouts verpönt sind.
sind Tabellen wirklich so schlecht? Sie funktionieren in jedem modernen Browser und sind logisch und einfach!
für css Layouts hingegen muss man diverse hacks einsetzen und ich finde sie viel verwirrender.
Kann mir einer die eigentlichen Vorteile erklären?
Hi Tobias!
Mal ganz davon abgesehen, dass ich mich beim Anblick deines gewählten Themas spontan vor Lachen auf den Boden werfen musste und dass deine orthografischen und grammatischen Künste meiner ehemalige Deutschlehrerin ein mitleidiges Lächeln abgerungen hätten, möchte ich dir einen konstruktiven Link mit auf deinen Lebensweg geben: http://www.seybold.jan-andresen.de/.
MfG Hopsel
Moin!
sind Tabellen wirklich so schlecht? Sie funktionieren in jedem modernen Browser und sind logisch und einfach!
Tabellen sind nur dann "einfach", wenn man lediglich einfache Tabellenstrukturen hat.
Oftmals aber erfordern die Designs, dass man keinesfalls "einfache" Tabellenstrukturen mehr haben kann. Das daraus resultierende Chaos im Code ist dann oft nur noch schwer zu bewältigen. Nicht umsonst habe ich meinen Tabellenzerleger geschrieben, weil ich in den Tabellenverschachtelungen von komplexen Layouts anders keinen Überblick mehr hatte.
Abgesehen davon erfordert ein in allen Browsern funktionierendes Tabellendesign sehr viel Disziplin bei der Maßangabe (width), bei der Verschachtelung (alle Tags immer schließen), und sämtliche Formatierungen müssen in jeder HTML-Datei immer wiederholt werden, was diese ziemlich mit sinnlosem, weil redundantem Code aufbläht.
Und will man Änderungen vornehmen, muß man sehr gut aufpassen, was man tut, denn Abweichungen auch nur um ein Pixel oder das Verrechnen bei den Breitenangaben führt mitunter zu wirklichen Darstellungskatastrophen, zumindest aber zu blöden Pixelfehldarstellungen.
Ein Tabellendesign ist wirklich alles andere als wartungsarm. Insbesondere wenn man es nicht erstellt hat (oder wenn man schon länger nicht mehr dran gearbeitet hat), versucht man entweder, mit den Veränderungen absolut keine Tabelle zu beschädigen oder zu verändern, also eher minimal-invasiv zu arbeiten, oder man muß sich ziemlich aufwendig erst einmal in die Konstruktion der Tabellen einarbeiten.
für css Layouts hingegen muss man diverse hacks einsetzen und ich finde sie viel verwirrender.
Bei CSS muß man überhaupt keine Hacks einsetzen, wenn man nicht will. Diese ganzen Hacks dienen sowieso in der Regel nur dazu, dass der Internet Explorer das tut, was alle anderen Browser ganz freiwillig und gemäß des Standards ohnehin schon tun. Und wenn erst der IE 7 herauskommt und die Erwartungen hinsichtlich seiner Standardkompatibilität auch erfüllt, dann dürfte das Zeitalter der Hacks auch bald zu Ende gehen. Zumal solche Hacks wirklich nur für ganz konkrete Probleme, die der IE unter Umständen bereitet, eingesetzt werden.
CSS-Designs bieten hingegen im Gegensatz zum Tabellendesign diverse Vorteile. Man hat hinsichtlich der Benutzung von rechteckigen Bereichen viel größere Freiheiten, solche Bereiche können z.B. überlappen (versuch das mal mit Tabellen hinzukriegen - da brauchst du mehr als zwei Zellen, und wenn in der "hinteren" Zelle Text um die "vordere" Zelle fließen soll, geht das schon mal gar nicht), und man kann sie, zentral durch die CSS-Datei gesteuert, im Prinzip (und bei gut organisiertem und konstruiertem HTML) beliebig neu formatieren, wenn man sein Deisgn mal umstellen will. Natürlich unterliegt man, ohne das zugrundeliegende HTML ändern zu wollen, doch gewissen Einschränkungen, aber alleine die vielfältigen Designs von http://www.csszengarden.com sollten dir ein Gefühl geben, was allein durch Veränderung der CSS-Datei im Zusammenspiel mit einer vernünftig aufgebauten HTML-Datei (die beim CSS-Zen-Garden immer identisch bleibt) möglich ist.
Kann mir einer die eigentlichen Vorteile erklären?
Eigentlich sind Tabellen-Design und CSS-Design kein Widerspruch. Tabellen finden in HTML statt, und CSS ist eben CSS. Beides läßt sich gleichzeitig benutzen und arbeitet auch prima zusammen. Aber über den Zustand, dass man die einzelnen Bereiche einer Website nur mit Tabellen voneinander trennt, ist die technische Entwicklung schon lange hinweg. Tabellen sollen gemäß der reinen Lehre nur noch zur Auszeichnung von tabellarischen Daten verwendet werden.
Und aus der Praxis kann ich berichten, dass man tatsächlich für die grundsätzlichen Layoutfragen ohne Tabellen zurecht kommt. Gewisse Dinge lassen sich dann aber leider doch nicht komplett ohne Tabellen lösen (zumindest nicht so einfach, wie man sich das wünscht) - aber der größte Nachteil des Tabellendesigns, nämlich dass der Tabelleninhalt erst dann angezeigt wird, sobalt das Ende der Tabelle vom Browser geladen ist, die Seite somit immer erst nach einer gewissen Pause dargestellt wird - dieser Nachteil ist heutzutage nicht mehr hinzunehmen, indem man auf seitenumfassende Tabellen einfach verzichtet.
- Sven Rautenberg
ich befasse mich schon lange mit html und stosse immer wieder auf artikel, foren usw. wo die css-container-Layouts so hoch gepriesen werden und die Tabellen- Layouts verpönt sind.
Weil ein Layout mit CSS viel mehr Möglichkeiten bietet und es leichter ist.
Das Prinzip eines Aufbau mit DIV Layern und einem Tabellenlayout ist erst mal das Selbe. Der Grundgedanke beim Aufbau einer Seite ist, dass du verschiedene Bereiche hast die du von einander abtrennst. Im ersten Falle nutzt du das DIV Element im zweiten eine Tabelle.
Das Problem der Tabelle ist, das du jetzt eine feste Anordnung hast die du nicht mehr ohne Änderungen am Quelltext verändern kannst. Die Anordnung ist starr. Um Breitenangaben zu ändern brauchst du oft (Leer) Grafiken die die Zellen entsprechend ändern das gleiche gilt bei Abständen und Rahmen. Während du ein DIV mit den entsprechenden Angaben ohne Probleme sehr flexibel, was eine Grundvoraussetzung eines HTML Layouts sein sollte, mit den entsprechenden CSS Angaben gestalten kannst und das ohne einen Eingriff (bei entsprechend kluger Anordnung der HTML Elemente) in den Code der Seite.
sind Tabellen wirklich so schlecht? Sie funktionieren in jedem modernen Browser und sind logisch und einfach!
Tabellen sind sehr gut - für Tabellarische Daten.
für css Layouts hingegen muss man diverse hacks einsetzen und ich finde sie viel verwirrender.
Du verwendest bei Tabellen keine Hacks?
Wie nennst du es wenn du Tabellen ineinander verschachtelst, Leergifs einfügst oder Reihen und Spalten verknüpfst? Ich halte das für Hacks, die Teilweise ohne Hilfsmittel gar nicht mehr durchführbar sind. Als ich noch mit Tabellen gearbeitet habe ging das zum teil nur noch mit einem WYSIWYG Editor da ich ansonsten die Tabellenstruktur nicht mehr durchschaut hätte.
Kann mir einer die eigentlichen Vorteile erklären?
Es ist viel viel einfacher.
Schau dir mal ein Weile http://www.csszengarden.com/ an, alle Seiten benutzen den gleichen HTML Code nur der CSS Code und dir Grafiken ändern sich. Das ist der sinn der dahinter steckt, du kannst Inhalt und Design völlig voneinander trennen.
Struppi.
Hallo Struppi.
Schau dir mal ein Weile http://www.csszengarden.com/ an, alle Seiten benutzen den gleichen HTML Code nur der CSS Code und dir Grafiken ändern sich. Das ist der sinn der dahinter steckt, du kannst Inhalt und Design völlig voneinander trennen.
Gerade in Bezug auf Code kann man den css Zen Garden absolut nicht hervorheben. Im Code befindet sich viel redundantes HTML, teilweise sogar inhaltslos, nur um dem Layouter mehr Möglichkeiten zu bieten.
Die Layouts sind fantastisch, keine Frage, doch das HTML ist nicht als Maß aller Dinge anzusehen.
Einen schönen Montag noch.
Gruß, Ashura
Moin!
Gerade in Bezug auf Code kann man den css Zen Garden absolut nicht hervorheben. Im Code befindet sich viel redundantes HTML, teilweise sogar inhaltslos, nur um dem Layouter mehr Möglichkeiten zu bieten.
Das ist natürlich richtig. Gewissen Einschränkungen beim Design ist man bei einem fest vorliegenden HTML in jedem Fall unterworfen. Man kann (um ein einfaches, aber illustrierendes Beispiel zu finden) beispielsweise nicht einfach die Reihenfolge von Textabsätzen beliebig umkehren. Gewiß kann man jeden einzelnen absolut positionieren - aber unter der Bedingung, dass die Textlänge eines Absatzes nicht bekannt ist, dürfte das Unterfangen dann doch extremst kompliziert werden - es ist jedenfalls einfacher, dann den HTML-Quelltext zu verändern.
Alles geht als auch mit CSS immer noch nicht. :)
Die Layouts sind fantastisch, keine Frage, doch das HTML ist nicht als Maß aller Dinge anzusehen.
Naja, das einzige, was man ihm vorwerfen kann, ist: Es ist praxisnah und aufgabenorientiert.
- Sven Rautenberg
Tag,
sind Tabellen wirklich so schlecht? Sie funktionieren in jedem modernen Browser und sind logisch und einfach!
Das mit der Browser-kompatibilität ist ein guter Punkt, da ists bei CSS wirklich stellenweise noch etwas mau.
Aber logisch und einfach?
Wenn mir ein Kunde sagt:
"Ich hätte auf meiner Homepage gerne einen Bereich auf der linken Seite, mit einer Liste mit Links und auf der rechten einen Hauptbereich dazu"
dann baue ich in CSS
einen linken bereich mit einer Liste mit links und rechts einen Hauptbereich dazu :). Ich kann dem Kunden danach sogar im Quelltext zeigen "Da ist Ihr Hauptbereich, da ihre Linkliste...", so dass ers versteht.
Mit Tabellen?
Ich baue eine Tabelle, bestehend aus zwei Spalten, wovon die erste eine Tabelle ist, mit drei Spalten, vonvon die erste einen Bulletpoint, die zweite ein Blind gif und die dritte den Link enhtält, die zweite....
Ich finde da CSS deutlich logischer, man beschreibt das, was man auf der Seite sieht, nämlich Bereiche und Container, keine Spalten und Zeilen.
Viele Grüße,
Jörg
Hallo,
ich befasse mich schon lange mit html und stosse immer wieder auf artikel, foren usw. wo die css-container-Layouts so hoch gepriesen werden und die Tabellen- Layouts verpönt sind.
Vielleicht gibt es irgendwelche religiösen Grundmuster die beim dem Thema als Bekehrungsversuche
mit gleichzeitiger Tabellenphobie aufteten.
sind Tabellen wirklich so schlecht? Sie funktionieren in jedem modernen Browser und sind logisch und einfach!
Genau, so schlecht sind sie eben nicht, auch nicht als Layouttabellen. Allerdings ist das mitunter
hysteriche Verhalten der Tabellenhasser auch noch kein Beweis dafür dass Tabellen als Layoutwerkzeug
anderen Lösungen vorzuziehen wären, zumal mir bei Tabellen der Leistungsumfang auch nicht weit
genug geht.
für css Layouts hingegen muss man diverse hacks einsetzen und ich finde sie viel verwirrender.
"Verwirrender" (CSS Layouts) kann ich allerdings nicht nachvollziehen; die geringe Leistungsfähigkeit
von CSS und derzeit genutzten Browsern ist meist der Haken (vielleicht auch noch einige
strukturelle Mängel in CSS, z.B. wenn bei floats auch für Mozilla noch Hilfselemente
nötig sind um ein "clear" einzuflicken?).
Schon bei der Abwärtskompatibilität um Netscape 4 kam es vor einiger Zeit zum gezielten
Sündenfall als einige selbsternannte Webverbesserer begonnen hatten, ihre Webseiten nur noch
für einige Browser zu erstellen und über zehn Prozent der Besucher zum Teil gar nicht auf
ihre Seiten zu lassen. Aber auch diese Seiten können auf Hacks kaumm verzichten, ob nun im HTML
mittels unzähliger Hilfscontainer, oder per conditional comment oder sonstiger CSS-Hacks, die
Situation ist einfach unschön. Auch auch das muß natürlich noch kein ausreichender Beleg sein um
automatisch zu Layout-Tabellen zu greifen.
Grüsse
Cyx23
Hallo Cyx23
... z.B. wenn bei floats auch für Mozilla noch Hilfselemente
nötig sind um ein "clear" einzuflicken?).
Hast du mal Clear Floats Without Structural Markup getestet?
Auf Wiederlesen
Detlef
Hallo Detlef,
... z.B. wenn bei floats auch für Mozilla noch Hilfselemente
nötig sind um ein "clear" einzuflicken?).Hast du mal Clear Floats Without Structural Markup getestet?
Dort wird mit :after entspr. im CSS nachgeholfen, ähnliche Sachen habe ich auch schon entwickelt
aber noch in der Schublade, weil sowas von vielen Browsern nicht unterstützt wird. Wenn ich es
recht erinnere betrifft das auch einige gebräuchliche Netscape bzw. Mozilla 1.6 oder 1.7, also wohl
wenigstens die NS 7.0, 7.1, 7.2.
Die Verlagerung ins CSS wäre sonst sicherlich vollkommen richtig, die o.g. Lösungen für den IE
dürften so aber oft auch nicht funktionieren (und bestätigen als CSS-Hack wieder die grundätzliche
Problematik).
Grüsse
Cyx23