664 Stimmen

Warum nicht Tabellen für das Layout in HTML verwenden?

Es scheint die allgemeine Meinung dass Tabellen nicht für das Layout in HTML verwendet werden sollten.

Warum?

Ich habe noch nie (oder nur selten, um ehrlich zu sein) gute Argumente dafür gesehen. Die üblichen Antworten sind:

  • Es ist gut, dass Inhalt vom Layout trennen
    Aber das ist ein trügerisches Argument; Klischee-Denken . Ich denke, es stimmt, dass die Verwendung des Tabellenelements für das Layout wenig mit tabellarischen Daten zu tun hat. Aber was soll's? Ist es meinem Chef egal? Interessiert es meine Benutzer?

    Vielleicht interessiert es mich oder meine Entwickler-Kollegen, die eine Webseite pflegen müssen... Ist eine Tabelle weniger wartungsfreundlich? Ich denke, eine Tabelle zu verwenden ist einfacher als mit divs und CSS.

    Übrigens... warum ist die Verwendung eines Divs oder eines Spans eine gute Trennung von Inhalt und Layout und eine Tabelle nicht? Ein gutes Layout mit nur divs erfordert oft eine Menge von verschachtelten divs.

  • Lesbarkeit des Codes
    Ich denke, es ist genau umgekehrt. Die meisten Leute verstehen HTML, nur wenige verstehen CSS.

  • Für SEO ist es besser, keine Tabellen zu verwenden
    Warum? Kann jemand einen Beweis dafür vorlegen, dass es so ist? Oder eine Aussage von Google, dass von Tabellen aus SEO-Sicht abgeraten wird?

  • Die Tische sind langsamer.
    Es muss ein zusätzliches tbody-Element eingefügt werden. Für moderne Webbrowser sind das Peanuts. Zeigen Sie mir einige Benchmarks, bei denen die Verwendung einer Tabelle eine Seite erheblich verlangsamt.

  • Eine Überarbeitung des Layouts ist ohne Tabellen einfacher, siehe css Zen-Garten .
    Die meisten Websites, die ein Upgrade benötigen, brauchen auch neue Inhalte (HTML). Szenarien, in denen eine neue Version einer Website nur eine neue CSS-Datei benötigt, sind nicht sehr wahrscheinlich. Zen Garden ist eine nette Website, aber ein bisschen theoretisch. Ganz zu schweigen von seiner missbrauchen von CSS.

Ich bin wirklich an guten Argumenten für die Verwendung von Divs + CSS anstelle von Tabellen interessiert.

1voto

Dani Punkte 61

Ich denke, dass es niemanden interessiert, wie eine Website entworfen/umgesetzt wurde, wenn sie sich gut verhält und schnell funktioniert.

Ich verwende sowohl "table"- als auch "div"/"span"-Tags im HTML-Markup.

Ich möchte Ihnen einige Argumente nennen, warum ich mich für divs entscheide:

  1. für eine Tabelle müssen Sie mindestens 3 Tags schreiben (table, tr, td, thead, tbody), um ein schönes Design zu erhalten, manchmal haben Sie eine Menge verschachtelter Tabellen

  2. Ich mag es, Komponenten auf der Seite zu haben. Ich weiß nicht, wie ich das genau erklären soll, aber ich werde es versuchen. Nehmen wir an, Sie benötigen ein Logo und dieses soll, nur ein kleines Stück davon, über den nächsten Seiteninhalt gelegt werden. Mit Hilfe von Tabellen müssen Sie 2 Bilder ausschneiden und diese in 2 verschiedene TDs einfügen. Bei der Verwendung von DIVs können Sie ein einfaches CSS verwenden, um es nach Belieben anzuordnen. Welche Lösung gefällt Ihnen am besten?

  3. wenn mehr als 3 verschachtelte Tabellen für etwas, das ich denke, um es mit DIVs neu zu gestalten

ABER ich verwende immer noch Tabellen für:

  1. tabellarische Daten

  2. Inhalte, die sich selbst erweitern

  3. schnelle Lösungen (Prototypen), da das Boxmodell von DIVs bei jedem Browser anders ist, da viele Generatoren Tabellen verwenden, usw.

0voto

mltorrefranca Punkte 21

In Bezug auf die Pflege der Website und die Überarbeitung des Designs bei gleichzeitiger Beibehaltung des Inhalts (was vor allem im eCommerce immer wieder vorkommt):

Zusammenführung von Inhalt und Design über Tabellen = Aktualisierung von Inhalt und Design.

Inhalt getrennt vom Design = Aktualisierung des Designs und vielleicht ein wenig Inhalt.

Wenn es nach mir ginge, würde ich meine Inhalte in PHP-generiertem XML halten, das mit XSLT in Markup umgewandelt und mit CSS und Javascript für die Interaktion gestaltet wird. Für die Java-Seite der Dinge, JSP zu JSTL, um das Markup zu generieren.

0voto

Rich Bradshaw Punkte 69394

Die kurze Antwort: Die Gestaltung wartbarer Websites ist mit Tabellen schwierig, mit der Standardmethode dagegen einfach.

Eine Website ist keine Tabelle, sondern eine Sammlung von Komponenten, die miteinander interagieren. Sie als Tabelle zu beschreiben, macht keinen Sinn.

0voto

Tabellen, die als reines Layout verwendet werden, stellen einige Probleme für die Zugänglichkeit dar (das habe ich gehört). Aber ich verstehe, was hier gefragt wird, dass man irgendwie das Web verkrüppelt, indem man eine Tabelle verwendet, um die korrekte Ausrichtung von etwas auf der Seite zu gewährleisten.

Ich habe schon einige Leute argumentieren hören, dass FORM-Etiketten und Eingaben eigentlich Daten sind und dass sie in Tabellen aufgenommen werden sollten.

Das Argument, dass die Verwendung einer Tabelle, um sicherzustellen, dass einige wenige Elemente richtig ausgerichtet sind, zu diesem massiven Anstieg des Codes führt, enthält in der Regel Beispiele dafür, wie ein einziges DIV alle ihre Anforderungen erfüllen kann. Sie geben nicht immer die 10 Zeilen CSS und spezielle Browser-Hacks an, die sie für IE5, IE5.5, IE6, IE7... schreiben mussten.

Ich denke, es geht nach wie vor darum, bei der Gestaltung ein Gleichgewicht herzustellen. Tabellen gehören zum Werkzeugkasten, man muss sich nur daran erinnern, wofür sie da sind...

0voto

ofaurax Punkte 1216

Mit DIV können Sie die Dinge einfach umstellen. Zum Beispiel könnten Sie diese :

Menu | Content

Content | Menu

Menu
----
Content

Es ist einfach, sie in CSS zu ändern, nicht in HTML. Sie können auch mehrere Stile anbieten (rechtshändig, linkshändig, speziell für kleine Bildschirme).

In CSS können Sie das Menü auch in einem speziellen Stylesheet ausblenden, das für den Druck verwendet wird.

Eine weitere gute Sache ist, dass Ihr Inhalt immer in der gleichen Reihenfolge im Code steht (das Menü zuerst, der Inhalt danach), auch wenn er visuell anders dargestellt wird.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X