Længlich: Div tag

Beitrag lesen

Ahoj!

Warum nutzt man nicht anstatt des div-tag z.B. ein p-Tag?

das frage ich mich auch oft. Tatsache ist, dass jedes HTML-Element einen bestimmten Sinn und Zweck hat; zum Layouten werden aber trotzdem oft ohne Nachdenken nur divs benutzt. Diese "Krankheit", die übermäßige Verwendung von divs, nennt man auch Divitis; das Code-Ergebnis, was dabei entsteht, eine div-Suppe.

Richtig. Ergänzung: Manchmal gibt es kein HTML-Element mit passender Bedeutung, und genau dann sind div und span angebracht (deren Bedeutung dann mit id oder class genauer bezeichnet wird).
Typisches Beispiel: <div id="header"> für den Seitenkopf, enthält meistens Überschrift, Logo und Navi. Weil das so häufig benutzt wird, gibt es in HTML5 <header>.

Wenn ich mir große Webseiten anschaue, dann besteht bei denen alles nur aus div-Tags.

Leider. Sinnvolle (semantische) Verwendung der vorhandenen HTML-Elemente scheint echt schwierig zu sein ...

Das kann z.T. an der Art liegen, wie der Quelltext serverseitig erzeugt wird. Bei ASP.NET z.B. ist alles objektorientiert; die Seite wird aus Controls zusammengesetzt, die auch verschachtelt sein können. Das sieht serverseitig toll aus, hat aber Konsequenzen:
• Die mitgelieferten Controls rendern fürchterliche Div- und Span-Suppen raus, wenn man die schuldigen Methoden nicht überschreibt. Die Zeit dafür kriegt man nicht immer genehmigt, wenn es ja eh schon funzt™.
• Da ein Control nicht weiß, an welcher Stelle es in den DOM gehängt wird, kann es teilweise wirklich schlecht entscheiden, welche Elemente nun gerade passen. Ein Container-Control weiß zudem nicht, was noch hineingepackt wird. Wenn z.B. nicht bekannt ist, welche Überschriften bereits benutzt wurden (h1, h2, …), weiß man eben auch nicht, welche als nächste dran ist. Die Antwort ist oft <div class="headline"> (würg). Natürlich kann man dafür Eigenschaften definieren, aber das bläht dann den serverseitigen Quelltext furchtbar auf und ist der Wartbarkeit noch viel abträglicher als die Div-Suppe.

Generell sollte man sich an wirklich großen Seiten eher nicht orientieren. Die sind meistens unter Zeitdruck entstanden und verwenden viel vorgefertigtes Zeug, das nur halbwegs paßt, und viel Inhalt, der von Usern zusammengeklickt wurde, die von dem CMS die Hälfte und von HTML gar nix verstanden haben. Wenn man die Zeit hat, es besser zu machen, sollte man das auch tun.

Ebenso habe ich irgendwo gelesen, dass dur den Gebrauch von div und span-Tags bestimmte HTML-Tags überflüssig geworden sind. Kann mir jemand sagen, welche es genau sind?

Vielleicht ist damit gemeint, daß man Frames (incl. Iframes) und Layout-Tabellen durch semantisches HTML ersetzen kann und auch unbedingt sollte?

Viele Grüße vom Længlich

--
Mein aktueller Gruß ist:
Tschechisch