Dies bedeutet, dass zur semantischen Verwendung von Divs Divs zum Umbrechen von Abschnitten eines Dokuments verwendet werden sollten, während Spans zum Umschließen kleiner Teile von Text, Bildern usw. verwendet werden sollten.
Zum Beispiel:
<div>This a large main division, with <span>a small bit</span> of spanned text!</div>
Beachten Sie, dass es illegal ist, ein Element auf Blockebene in einem Inline-Element zu platzieren.
<div>Some <span>text that <div>I want</div> to mark</span> up</div>
...ist illegal.
BEARBEITEN: Ab HTML5 können einige Blockelemente innerhalb einiger Inline-Elemente platziert werden. In der MDN-Referenz finden Sie eine ziemlich klare Auflistung. Das oben Genannte ist immer noch illegal, da <span>
nur Phrasierungsinhalte akzeptiert werden und <div>
es sich um Flow-Inhalte handelt.
Sie haben nach konkreten Beispielen gefragt, also eines aus meiner Bowling-Website BowlSK :
<div id="header">
<div id="userbar">
Hi there, <span class="username">Chris Marasti-Georg</span> |
<a href="/edit-profile.html">Profile</a> |
<a href="https://www.bowlsk.com/_ah/logout?...">Sign out</a>
</div>
<h1><a href="/">Bowl<span class="sk">SK</span></a></h1>
</div>
Ok, was ist los?
Oben auf meiner Seite habe ich einen logischen Abschnitt, den "Header". Da dies ein Abschnitt ist, verwende ich ein div (mit einer entsprechenden ID). Darin habe ich ein paar Abschnitte: die Benutzerleiste und den eigentlichen Seitentitel. Der Titel verwendet das entsprechende Tag
h1
. Die Benutzerleiste ist ein Abschnitt und wird in a eingeschlossen
div
. Darin ist der Benutzername in a eingeschlossen
span
, damit ich den Stil ändern kann. Wie Sie sehen können, habe ich auch
span
ungefähr 2 Buchstaben in den Titel eingeschlossen - dies ermöglicht mir, ihre Farbe in meinem Stylesheet zu ändern.
Beachten Sie auch, dass HTML5 eine breite Reihe neuer Elemente enthält, die allgemeine Seitenstrukturen definieren, z. B. Artikel, Abschnitt, Navigation usw.
Abschnitt 4.4 des HTML 5-Arbeitsentwurfs listet sie auf und gibt Hinweise zu ihrer Verwendung. HTML5 ist immer noch eine funktionierende Spezifikation, daher ist noch nichts "endgültig", aber es ist höchst zweifelhaft, ob eines dieser Elemente irgendwohin führt. Es gibt einen Javascript-Hack, den Sie verwenden müssen, wenn Sie diese Elemente in einer älteren Version von IE formatieren möchten. Sie müssen jedes Element mit erstellen, document.createElement
bevor eines dieser Elemente in Ihrer Quelle angegeben wird. Es gibt eine Reihe von Bibliotheken, die dies für Sie erledigen - eine schnelle Google-Suche ergab html5shiv .