• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

wann <div> und wann <table> ??

Status
Für weitere Antworten geschlossen.

Gringodon

Neues Mitglied
nach meinem letzten beitrag über mein div problem, schreib ich nun einen neuen.

ich habe gestern nämlich recherchiert bezüglich des gebrauchs von divs und tables und ich bin auf ganz unterschiedliche meinungen gestossen.

die einen sagen man sollte nur divs verwenden, die anderen sagen es kommt auf den gebrauch darauf an. wieder andere meinen dass tables leichter zum nachjustieren sind.

nun wollte ich fragen was ihr dazu sagt? wie sind eure erfahrungen, was kommt besser?

und wie ist das mit den spiders? je kleiner die datei desto besser oder?
also divs zu bevorzugen oder nicht?

danke für eure meinungen!
 
Deine Frage gehört eigentlich ins HTML-Forum, dennes geht ja hier um die HTML-Tags.

HTML ist eine Strukturbeschreibungssprache. Mit ihr legst Du fest, was Dein Inhalt bedeuten soll. Für jede Bedeutung gibt es ein passendes Tag.

Überschriften zeichnet man mit <h1> bis <h6> aus.
Textabsätze zeichnet man mit <p> aus.
Wichtige Textpassagen werden mit <em> ausgezeichnet.
Tabellarische Daten zeichnet man mit <table> aus.
Will man mehrere Elemente gruppieren, macht man ein <div> drumrum.

Was "leichter" ist oder "besser geeignet" für wasauchimmer, ist nicht relevant. Bei HTML geht es nur um die logische Bedeutung.

Das hat auch nichts mit der Dateigröße zu tun. Wenn Du tabellarische Daten hast, musst Du die mit <table> kennzeichnen, dass der Code da größer ist, als wenn Du die mit <div>, <p> oder was anderem auszeichnetst, ist logisch, aber das ist halt die Folge daraus. Würdest Du tabellarische Daten anders auszeichnen, wäre die Auszeichnung falsch, und der Inhalt würde falsch intepretiert werden.

Weil Du die Frage ins CSS-Forum gestellt hast, sag ich auch noch kurz was zum Layout. Es besteht das weit verbreitete Gerücht, dass man heutzutage kein "Layout mit Tabellen" mehr macht, sondern "Layout mit div". Das ist beides Unfug. Layout macht man mit CSS. Sowohl Tabellen als auch divs sind aber HTML-Elemente und mit HTML macht man ja nur die logische Struktur.

Alles, was Layout und Design angeht, macht man in CSS.
Nichts, was Du mit HTML machst, ist relevant für die Optik.

Wenn Du ein horizontales Menü haben willst, zeichnest Du das als Liste mit <ul> aus. Ohne CSS sind die Einzelpunkte dann untereinander. Das ist irrelevant. Würdest Du deswegen auf <ul> verzichten, würdest Du HTML falsch anwenden. Die Listenpunkte nebeneinander zu rkiegen, geht mit CSS ganz einfach. Aber dafür wiederum ist eben CSS zuständig.

Okay? Oder noch Fragen? Dann fragen! :-)

Ach ja: Stichwort "Trennung von Inhalt und Layout". Das sollte man konsequent durchhalten. Das macht alles einfacher. Verständlicher. Übersichtlicher. Leichter wartbar. Schlankerer Code. Schnellere Ladezeiten durch Caching des externen Stylesheets.
Viele Fachbegriffe. Aber Du kannst sie ergooglen oder einfach wieder nachfragen.
 
Danke vielmals Efchen,

eine frage hätt ich noch zu diesem thema. da mich ein freund darüber informiert hat das divs besser sind, dachte ich es wär auch so.

nun mach ich dir ein konkretes beispiel zu meiner page. vieleicht kannst du mir einfach kurz bescheid geben ob ich auf dem falschen weg bin :smile:, da ich ja wirklich nicht viel ahnung habe (aber doch das konzept von html und css verstehe und es schritt für schritt immer besser wird).

Ich habe an template gemacht für mein design, das ich-sobald es fehlerfrei ist für alle seiten verwenden will.

das ganze design hab ich in ein hight=800px, und width=auto, gesteckt.
mein oberster div ist 800px X 300px (menü und logo werden hier als SSI eingefügt)

mein haupt teil besteht aus dem content body (ein haupt div und zwei untergeordnete divs/ wovon das linke 150px X 2000px ist aus dem anderen post mit meinem grafik problem auch als SSi)

und mein unterster teil ist 800px X 100px wo noch ein kleines bildchen ist und sitemap contact links (auch zwei untergeordnete divs) usw....

aam anfang waren alles tables und nach dem tipp meines freundes habe ich alles in divs umgewandelt.

nun ist meine frage wo ich was anders machen soll und optimieren kann. Sprich.... das main fenster sollte ein table sein und alles untergeordnete divs oder?
 
eine frage hätt ich noch zu diesem thema. da mich ein freund darüber informiert hat das divs besser sind, dachte ich es wär auch so.
Würde mich wundern, wenn es nur eine Frage wäre :-)
Daran haben sich schon viele die Zähne ausgebissen - aber eigentlich ist es ganz einfach.
Was Dein Freund gesagt hat, ist zwar nicht absolut falsch, aber es wird in der Regel falsch verstanden. Es ist in der Tat besser, <div>s zum Layout zu missbrauchen, als Tabellen. Denn mehrfach verschachtelte Tabellen stellen eine Barriere dar (mein Beispiel mit dem Vorlesen lassen). <divs> stellen nichts Böses an. div-Suppe (wie man es nennt, wenn man übermäßig überflüssige divs verwendet) stellt keine unmittelbare Barriere dar. Beide Vorgehensweisen sind aber im Sinne von HTML falsch, weil dadurch keine vernünftige Semantik vermittelt wird und daher wird so eine Seite falsch interpretiert.
Nichtsdestotrotz ist aber kein HTML-Tag dazu da, Layout zu machen, das macht allein CSS.

das ganze design hab ich in ein hight=800px, und width=auto, gesteckt.
mein oberster div ist 800px X 300px (menü und logo werden hier als SSI eingefügt)
Feste Größen zu verwenden, ist ungünstig, wo doch jedes Browserfenster und somit jeder Viewport unterschiedliche groß sein kann. Aber das ist nochmal ein anderes Thema.
Dass irgendwelche Elemente per SSI oder sonstwie eingefügt werden, ist sowohl für HTML als auch für CSS irrelevant, wichtig ist nur das Ergebnis, was am Ende rauskommt, weil das ist die Seite, die vom Browser interpretiert wird. Wenn Du also in solchen Fällen Fehler suchst oder Fragen hast, musst Du immer von der fertigen Seite (nach SSI) ausgehen, niemals von den Einzelteilen vorher.

aam anfang waren alles tables und nach dem tipp meines freundes habe ich alles in divs umgewandelt.
Naja, jetzt hast Du div-Suppe. Aus Sicht der Semantik das gleiche nur in grün.

nun ist meine frage wo ich was anders machen soll und optimieren kann. Sprich.... das main fenster sollte ein table sein und alles untergeordnete divs oder?
Deine Frage hat aber rein gar nichts mit dem zu tun, was Du mir über Deine Seite gesagt hast. Die Frage kann ich so nicht beantworten.

HTML ist für die Bedeutung des Inhalts zuständig.

Du hast mir keinen Inhalt genannt. Daher kann ich Dir nichts antworten.

Welche Tags Du verwendest, hängt einzig und allein vom Inhalt der Seite ab.

Deswegen empfehle ich immer:
1. Inhalt schreiben.
2. Inhalt logisch auszeichnen.
3. DANN ERST das Layout machen.

Andersrum machst Du irgendwelche Boxen ohne Inhalt, nimmst dafür div, aber wenn dann der Inhalt reinkommt, ändern die wenigsten die logische Auszeichnung wieder. Im schlimmsten Fall müssen sie dann ja schließlich ihr Stylesheet nochmal komplett ändern.

Fang mit dem Inhalt an. Nur wenn Du Inhalt hast, kannst Du eine semantisch korrekte Auszeichnung mit HTML machen. Und nur wenn Du eine valide und semantisch korrekte Basis aus HTML hast, kannst Du Layout und Design mit CSS bestimmen.
 
Fang mit dem Inhalt an. Nur wenn Du Inhalt hast, kannst Du eine semantisch korrekte Auszeichnung mit HTML machen. Und nur wenn Du eine valide und semantisch korrekte Basis aus HTML hast, kannst Du Layout und Design mit CSS bestimmen.

ich kenne den inhalt meiner page und habe ihn auch im kopf ( es gut um poker)

also meinst du ich sollte zuerst reinen text schreiben und erst dannach die struktur aufbauen und einfügen?
 
Das meine ich.
Denn dann wählst Du von vorn herein die richtigen Tags und musst nicht hinterher wieder alles umstellen. Außerdem vermeidest Du so überflüssige <div>s. Bei der bloßen Auszeichnung des Inhalts brauchst Du nämlich prinzipiell erstmal keine <div>.

Wenn Du später mal besser bist, Semantik aus dem FF beherrschst und Inhalt und Layout immer strikt voneinander trennst, dann wirst Du auch in der Lage sein, Inhalt und Layout gleichzeitig oder sogar Layout vorher machen zu können. Aber gerade für Anfänger zum Thema CSS-Layout und semantisches HTML finde ich diese Vorgehensweise einfacher, um überhaupt erstmal zu verstehen, worum es geht - und um zu erkennen, wie intuitiv, logisch und einfach das Grundprinzip eigentlich ist.

Wenn Du jetzt Deinen Inhalt mit HTML auszeichnest, mach das nur in Hinblick auf die logische Struktur. Wähle die Tags aufgrund ihrer Bedeutung, niemals, weil sie ein bestimmtes Aussehen im Browser erzeugen oder eben nicht erzeugen. Die Optik kommt erst später mit CSS.

Viel Erfolg. Wir sprechen uns wieder :-)
 
Ergänzend:
Es herrscht oft die Meinung, dass Tabellen schlecht und nur CSS-Layout gut sei.
Dies ist ein Irrglaube, denn CSS heißt keinesfalls, dass Tabellen verboten wären. Sie sind nach wie vor das richtige und geeignete Element für eine strukturierte Darstellung wie z.B. eine Adressliste mit Name, Straße, Ort usw.
Für eine reine Layout-Gliederung sollten sie dagegen nicht (mehr) verwendet werden.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben