2011-01-16 8 views

Antwort

1

Ich kann dazu kommentieren. Eine Google-Suche bringt Ihnen "konventionelles Widsom", aber der Grund, warum Sie zu StackOverflow kommen, ist der Rat von Fachleuten, die dies seit Jahren tun. Front-End-Web-Entwicklung ist etwas, was Sie nicht aus einem Buch oder einer Google-Abfrage lernen können. Es ist etwas, das Sie lernen, indem Sie Dinge erstellen und in den Browsern des Tages zur Arbeit bringen. Ich mache das seit 2002.

kann eine Menge zu diesem Thema gesagt werden, aber die kurzen ist, dass Tabellen-Layout Steifigkeit und Sperre Layout Flexibilität . Wenn Sie Markup schreiben, das nur mit CSS neu formatiert werden muss, verwenden Sie keine Tabellen. Ich sage Starrheit, weil die Spalten in einer Tabelle nie brechen können. <TD/><TD/> wird immer links sein, egal was passiert. Du wirst nie Scheiße bekommen, wenn du dich überschneidest oder einen Block unter dem anderen Block wickelst oder irgendetwas anderes Seltsames. Tabellen sind 100% zuverlässig für das Layout.

Natürlich rede ich nur über das Erstellen von Spalten. Für alles andere sind DIVs offensichtlich alles, was Sie brauchen. Aber selbst für ein säulenförmiges Layout haben Tabellen Nachteile. Extra-Markup Cellpadding kann nicht mit nur CSS über Browser hinweg auf Null gesetzt werden, so dass Sie dieses Markup ebenfalls benötigen. Tabellen stellen einen ganz neuen CSS-Anzeigetyp dar, sodass Ihr bestehendes Wissen über Anzeige: Block und Anzeige: Inline möglicherweise unbrauchbar wird. Auch Tische sind flexibel in ihrer Breite. Was bedeutet, dass ein TD etwa 300 Pixel breit sein sollte und dafür kein Platz im Fenster ist, wird es schmaler. Aus diesem Grund setzen viele Leute DIVs in ihre TDs und setzen die Breite auf DIV. In diesem Fall ist es völlig starr. Aber es ist extra Markup.

Warum nicht einfach CSS verwenden? Dies beinhaltet einen von zwei CSS-Hacks für Spalten, entweder a) absolute Position oder b) float. Keines davon ist das, was man "im Layoutfluss" der Seite nennt, was alles schwierig und fehleranfällig macht. Doable, aber Sie müssen sich fragen, warum verbringen Sie die Zeit dafür?

Ein falscher Nachteil von Tabellen ist Bildschirmleser. Sie lesen gut, reihenweise zuerst gefolgt von der Zelle. Wenn Ihre Seite zehn Bildschirme lang und eine einzelne Tabelle enthält, liest sie die gesamte Spalte 1, bevor sie zu Spalte 2 gelangt. Was sollte sie sonst noch tun? Wenn es etwas anderes tun sollte, brechen Sie Ihr Layout in gestapelte Tabellen mit expliziten Spaltenbreiten.

Ein echter Nachteil von Tabellen besteht darin, dass jedes Element weniger eigenständig ist, wenn das Markup von einem serverseitigen Framework wie ASP.NET oder GWT stammt. Sie sind nicht mehr nur DIVs mit einer Klasse, die isoliert ausgegeben werden kann, sondern sie müssen im Kontext einer umgebenden TABLE-Struktur ausgegeben werden.

Ich neige dazu, Tabellen zu verwenden. Es ist nicht "PC", aber es funktioniert mit wenig Aufwand. Ich könnte einen großen Nachteil von ihnen vermissen und wenn ja, fühlen Sie sich frei zu kommentieren.

1

CSS ist der Industriestandard, zuerst einmal. Das Entwerfen von Websites mit Tabellen ist seit einigen Jahren nicht mehr in Mode.

Der Hauptgrund dafür ist, dass Tabellen nicht wirklich dazu gedacht sind, Elemente zu positionieren - die Art, wie sie strukturiert sind, macht es für mobile Geräte, Text-to-Speech-Reader und andere schwierig Zugänglichkeitstechnologie, um sie zu durchqueren.

Und ja, was Brian gesagt hat.

+0

Ich glaube nicht, dass Sie das große Bild haben. Sie verwenden kein CSS, weil es in diesem Moment kühler als Tabellen und * in der Mode * ist. Sie verwenden es, weil CSS für Präsentation und Tabellen (nur) zum Erstellen von Tabellen dient. –

+0

Eigentlich glaube ich, dass Aendrew genau das Bild bekommen hat. Das OP fragt nach Vor- und Nachteilen. Das CSS ist für Präsentation und Tabellen nicht ist * nicht * und Vorteil oder Nachteil; eher ist es eine einfache Tatsache. Die von aendrew zitierten Probleme haben andererseits einige der Nachteile der Verwendung von Tabellen hervorgehoben. – Dancrumb

+0

@Alin - Ergo mein zweiter Punkt, dass Tabellen nicht wirklich als Positionierungsobjekt gedacht sind. Sie können sie so verwenden, sicher und für eine lange Zeit war es der beste Weg, Websites online zu erstellen. Aber dann verbesserte sich CSS, und die Positionierung anderer Dinge wurde besser. Ich habe nicht gesagt, Tabellen zu verwenden ist "out of vogue", weil ich denke, CSS ist cooler; Ich sagte das, weil die Verwendung von CSS-Positionierung jetzt eindeutig der branchenbeste Standard ist. Meine Güte. :) – aendrew

Verwandte Themen