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.

2voto

Ein großes Problem für mich ist, dass Tabellen, vor allem verschachtelte Tabellen, viel länger zum Rendern brauchen als eine richtig gestaltete CSS-Implementierung. (Sie puede css genauso langsam machen).

Alle Browser rendern das CSS schneller, da jedes div ein separates Element ist, so dass ein Bildschirm geladen werden kann, während der Benutzer liest. (Für große Datensätze, etc.). Ich habe css anstelle von Tabellen in diesem Fall nicht einmal mit dem Layout zu tun.

Eine verschachtelte Tabelle (Tabellen innerhalb von Zellen usw.) wird erst dann im Browserfenster dargestellt, wenn das letzte "/table" gefunden wird. Schlimmer noch - eine schlecht definierte Tabelle wird manchmal nicht einmal gerendert! Oder wenn sie doch gerendert wird, kommt es zu Fehlverhalten. (nicht Colspanning richtig mit "TD"'s etc.)

Für die meisten Dinge verwende ich Tabellen, aber wenn es um große Daten geht und der Wunsch besteht, dass ein Bildschirm für den Endbenutzer schnell gerendert wird, versuche ich mein Bestes, um das zu nutzen, was CSS zu bieten hat.

1voto

RVeur23 Punkte 81

Es tut mir leid für mein Englisch, aber hier ist ein weiterer Grund:

Ich habe in einer Regierungsorganisation gearbeitet, und der Hauptgrund, TABLE nicht zu verwenden, ist für behinderte Menschen. Sie verwenden Maschinen zur "Übersetzung" von Webseiten.

Das Problem ist, dass diese "Übersetzungsmaschine" die Website nicht lesen kann, wenn sie von TABLE erstellt wurde. Warum? Weil TABLE für DATAS sind.

Wenn Sie nämlich TABELLEN verwenden, müssen Sie für jede ZELLE einige Informationen angeben, damit Behinderte wissen, wo sie sich in der TABELLE befinden. Stellen Sie sich vor, Sie haben eine große Tabelle und müssen zoomen, um nur eine Zelle auf dem Bildschirm zu sehen: Sie müssen wissen, in welcher Zeile/Spalte Sie sich befinden.

So werden DIV verwendet, und die Behinderten können den Text einfach lesen und erhalten keine seltsamen Informationen über Zeilen/Spalten, die dort nicht sein müssen.

Ich bevorzuge auch TABLE, um schnell und einfach Vorlagen zu erstellen, aber ich habe mich jetzt an CSS gewöhnt... es ist mächtig, aber man muss wirklich wissen, was man tut... :)

1voto

Adam Rosenfield Punkte 373807

Tabellen sind gut für HTML, das man für etwas Einfaches oder Vorläufiges zusammenstellt. Wenn Sie eine umfangreiche Website erstellen, sollten Sie Divs und CSS verwenden, da dies im Laufe der Zeit leichter zu pflegen ist, wenn sich Ihre Website ändert.

1voto

Pixelgrey Punkte 55

Wenn wir immer noch Tabellen für Layouts verwenden, verpassen wir die Innovation auf der Div-Seite.

Viele haben Lösungen entwickelt, die die Erstellung von Layouts für Divs erleichtern. Die beliebteste davon ist die Rasterarchitektur. Es gibt dynamische Layout-Generatoren, die auf dieser Architektur basieren. Sehen Sie sich das an: 1) 960.gs und (http://grids.heroku.com/) 2) Blaupause und so viele andere in letzter Zeit.

Ich habe nicht viel Innovation in Bezug auf die Architektur und die Werkzeuge mit dem Tabellenlayout gesehen.

Ich würde sagen, alle Theorien beiseite, praktisch Layout mit CSS und divs sind schneller. Vielmehr Innovation in dieser Richtung machte es einfacher als alles andere.

1voto

Biranchi Panda Punkte 81

Nach meinem Wissen über Tabellen, wenn zu viele Tabellen verschachtelt sind, gibt es einen großen Overhead für den Browser beim Rendern der Seite.

1 - Der Browser muss mit dem Rendern der endgültigen Ansicht warten, bis die gesamte Tabelle geladen ist.

2 - Der Algorithmus zum Rendern der Tabelle ist aufwendig und erfolgt nicht in einem einzigen Durchgang. Wenn der Browser den Inhalt erhält, versucht er, ihn unter Berechnung der Breite und Höhe des Inhalts darzustellen. Wenn Sie also verschachtelte Tabellen haben, sagen wir, der Browser hat die erste Zeile erhalten und die erste Zelle hat eine große Menge an Inhalt und Breite und Höhe sind nicht definiert, wird er die Breite berechnen und die erste Zeile rendern, In der Zwischenzeit erhält er die 2. Zeile und Zelle Nr. 2 hat eine Menge Inhalt! Es wird nun die Breite für die Zellen der zweiten Reihe berechnen. Was ist mit der ersten? Es wird die Breite rekursiv berechnen. Das ist schlecht für die Client-Seite. (Um ein Beispiel zu nennen) Als Programmierer optimieren Sie Dinge wie die Zeit zum Abrufen von Daten, optimierte Datenstrukturen und so weiter. Sie optimieren die Dinge so, dass sie auf der Serverseite, sagen wir in 2 Sekunden, abgeschlossen sind, aber der Endbenutzer erhält die endgültige Ansicht in 8 Sekunden. Was ist hier falsch? 1. Vielleicht ist das Netzwerk langsam! Was ist, wenn das Netzwerk in Ordnung ist? Was ist, wenn das Netzwerk die Inhalte in der nächsten 1 Sekunde liefert? Wo werden diese zusätzlichen 5 Sekunden verbraucht? Worüber man sich Sorgen machen sollte: Der Browser braucht möglicherweise viel Zeit, um die Tabellen zu berechnen und darzustellen!

Wie kann man Tabellen optimieren? Wenn Sie Tabellen verwenden, würde ich vorschlagen, immer Breite für die Zellen zu definieren. Dies garantiert nicht, dass der Browser blind nur diese Breite nimmt, aber es wäre eine große Hilfe für den Browser bei der Entscheidung über die anfänglichen Breiten.

Aber, am Ende, div sind großartig, wie CSS kann durch den Browser zwischengespeichert werden; während Tabelle sind nicht zwischengespeichert!

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