Layout von HTML5-Seiten

div- und und span-Tags sagen nichts aus über den zu erwartenden Inhalt aus.
Hierfür gibt es in HTML sogenannte semantische Elemente, welche genau dieselbe Funktion besitzen wie div und span, aber darüber hinaus durch ihren Namen angeben, wofür sie genutzt werden.

nav => enthält Navigationselemente

Das nav-Tag sollte bei Verwendung die Navigation der Seite enthalten.
<nav>
  <!-- hier befinden sich Navigationselemente der Seite -->
</nav>

header => enthält die Headerelemente der Seite

...

to do

Siehe hier ...