Moin,
ich bin noch ein Anfänger in Bezug auf html.
Deswegen stellst Du auch eine Frage nach CSS (so stehts zumindest im Subject) 
Die derzeitige Struktur sieht folgendermaßen aus.
Naja, die ist ja derzeit noch sinnfrei, weil Du keinen Inhalt hast. Das ist - für einen Anfänger insbesondere - immer das erste, was man macht.
Dann zeichnet man den Inhalt erstmal logisch mit HTML aus (Semantik).
Erst dann solltest Du Dich ans Layout machen.
Wenn Du diesen Weg einschlägst, bist Du in der Lage, Inhalt und Layout sauber voneinander zu trennen, was eigentlich das A und O beim Erstellen einer Website ist.
Das, was Du derzeit mit HTML schaffst, ist unlogische div-Suppe und Du machst Layout mit HTML. Das ist aber nicht der Sinn von HTML.
Je nachdem, was da für Inhalt rein soll, fallen einige der divs u.U. weg oder werden durch andere Elemente ersetzt.
Es funktioniert zwar, aber ist das sauber programmiert?
Programmiert ist da gar nichts. Eine Programmiersprache zeichnet sich durch einen definierten Ablauf aus. Mit ihr kann man Bedingungen oder Schleifen und ähnliches realisieren. Das geht alles weder mit HTML noch mit CSS, weil beides Auszeichnungssprachen und keine Programmiersprachen sind.
Aber sauber ist das aus dem o.a. Grund nicht, weil man HTML nicht benutzen kann, solange es keinen Inhalt gibt, denn HTML bezieht sich ausschließlich auf den Inhalt. Ohne Inhalt kann man nicht sagen, ob das HTML richtig ist.
Wie kann man den Code evtl. verbessern?
Generell, indem Du die oben beschriebene Reihenfolge einhältst.
Und auch, indem Du die Trennung von Inhalt und Layout überall anwendest, also keine Inline-Styles verwendest, sondern ein externes Stylesheet, damit in Deiner HTML-Datei auch nur HTML ist und kein CSS.
Speziell, indem Du Deine Überschriften richtig sortierst. Es ist semantisch nicht logisch, dass Du nur Überschriften dritter Ordnung hast, aber keine Überschriften erster oder zweiter Ordnung.
Und ein div verwendet man nur, wenn man eine logische Gruppe anlegen will, aber ob Du hier eine Gruppe hast, kann man mangels Inhalte gar nicht beurteilen.
Bestimmt tauchen dazu noch Fragen auf, weil es ganz danach aussieht, als hättest Du die falschen Quellen erwischt, was den Sinn von HTML angeht. Bei HTML gehts nur um die Semantik. Nicht um das Layout und nicht um das Aussehen.
Wenn also noch Fragen sind, dann kannst Du entweder in die in FAQ:1161 verlinkte Einführung gucken oder hier fragen!
Viel Erfolg,
-Efchen