in den div#top alles rein und einmal auf width: 950px;
dann sowas wie div#top * {float: left; clear: none; } - damit "fließt einmal alles nebeneinander was nach/im div#top kommt und mit clear verhinderst du die zeilenumbrüche, es "fließt" also solange von l nach r bis der platz von 950px aufgebraucht ist. dann noch eine height: xy dazu und auf display: block; und clear: right; damit das ganze oben schön stehen bleibt und danach der zeilenumbruch erfolgt.
sinn würde machen an die obige definition noch "margin: 0;" anzuhängen, damit die außenabstände der elemente (zu-/voneinander) eliminiert sind.
dann kannst du in der reihenfolge die du willst deine 3(?) divs setzen. die sollten dann idealerweise gemeinsam auch auf die 950px breite kommen. den text von h1 und blog_description (also <h1> und <p>) dann innerhalb des zugehörigen divs mit padding (innenabstand) einstellen: padding: oben rechts unten links; das clear kannst du dir nach h1 sparen, weil da eh automatisch ein zeilenumbruch daher kommt.
soweit so gut. probier mal aus.