2013-04-26 8 views
5

Das macht mich jedes Mal verrückt, wenn ich es sehe. Warum ist die Verwendung von div Elementen fast eine Obsession?Warum wollen die meisten Menschen TABLEs in HTML vermeiden und DIVs für alles verwenden?

Ich verstehe, warum in der Auszeichnungs meist div s, jeweils mit einem id oder (noch besser) ein className kann eine saubere Markup helfen zu entwickeln und Kontrolle der optischen Veränderungen zu halten. Ich sehe zum Beispiel immer wieder Fragen darüber, wie divs sich wie eine Tabelle verhalten, und selbst wenn ihnen gesagt wird, dass etwas nicht mit der x- oder y-Browser-Version kompatibel ist, wollen sie immer noch Folgendes tun:

<div style="display: table"> 
    <div style="display: table-row"> 
     <div style="display: table-cell">Content</div> 
     <div style="display: table-cell">Content</div> 
    </div> 
    <div style="display: table-row"> 
     <div style="display: table-cell">Content</div> 
     <div style="display: table-cell">Content</div> 
    </div> 
</div> 

Warum? ... wirklich: Warum?

Warum ist das besser als mit einem table? Oder warum benutzt man Tabellen, die abscheulich sind?

Tabellen sind Teil von HTML Elementen. Sie existieren aus einem bestimmten Grund und haben einen guten Zweck. Sie sind nicht veraltet und werden nicht in absehbarer Zeit (oder früher als div s) verschwinden. Und am wichtigsten: Sie verhalten sich in allen Browsern korrekt & Versionen!

Also ... warum die Obession mit div s sich wie Tabellen verhalten? Warum schreiben so viele Leute auf diese Weise und sind dann stolz auf etwas so Dreckiges?

Dies ist nicht exklusiv für table s. Ich sehe ständig div s ersetzt alle html Elemente, wie h1 .. h6, span s usw.

Warum ??

+0

Ich würde sagen, dass es Semantik ist. Wenn Leute Überschriften durch div-Elemente ersetzen, macht das keinen Sinn. Aber wenn Sie Ihr Layout in Tags verpacken, die für Tabellendaten bestimmt sind, dann ist das auch eine falsche Semantik. Mit dem 'display' Attribut ändern Sie lediglich das Aussehen, aber ein' td' würde tabellarische Daten beinhalten, die Ihr Inhalt nicht sein könnte. – slhck

+0

Verwenden Sie immer die richtige Semantik zum Beschreiben Ihrer Daten (die richtigen Tags) und dann CSS, um Ihr richtiges Styling/Layout zu erhalten.Alle HTML-Tags haben eine semantische Bedeutung, daher beschreiben Sie Ihre Daten ('table' für Tabellendaten,' h1', 'h2', ... für Überschriften, ...) (_div hell_ ist so schlecht wie _table hell_) –

+2

Es heißt Divitis. Es gibt einen Impfstoff, der semantisches Markup genannt wird, aber einige Leute sind dieser Art von Religion abgeneigt. – BoltClock

Antwort

3

Nein, mit divs, die sich wie Tabellenzellen verhalten, nur um Tabellen-Tags zu vermeiden, ist nicht viel besser.

Es ist völlig in Ordnung, Tabellen zu verwenden, wo Tabellen geeignet sind. Wenn Sie Tabellendaten anzeigen möchten, verwenden Sie Tabellen. Wenn Sie Ihre Seite nur in einer rasterähnlichen Umgebung mit Tabellen formatieren, dann verwenden Sie keine Tabellen.

Der Grund, warum Menschen divs mit Tabellenverhalten verwenden, liegt in der Regel daran, dass sie keine Tabellen verwenden möchten, da sie eine semantische Bedeutung haben, aber dennoch an einem Tabellenlayout festhalten möchten.

Am Ende sollten Sie nie Tabellen zum Layout von Seiten verwenden. Viele gute Gründe sind here gegeben.

0

Möglicherweise divs wäre besser, wenn Sie eine Tabelle wie folgt gesucht:

<table> 
<tr> 
<td></td> 
<td></td> 
<td></td> 
</tr> 
<tr> 
<td></td> 
</tr> 
<tr> 
<td></td> 
<td></td> 
</tr> 
</table> 
+0

Nein, suchen Sie das Colspan-Attribut. Allerdings wäre es für die beiden Spalten schwieriger, wenn sie jeweils die halbe Breite des Tisches hätten. –

+0

Ich verstehe das Colspan-Attribut, aber es kann schwierig werden, eine große Tabelle zu verwalten, besonders wenn Sie dynamischen Inhalt haben und die Anzahl der Tds erhöht oder verringert. – gaynorvader

Verwandte Themen