Dazu wirst du die Seite umbauen müssen.
1. Schreibe das HTML in der Reihenfolge, in der es angezeigt werden soll. Oben der Header, dann das Menü, anschließend den Maincontent und zum Schluss den Footer.
2. Die Positionierung von HTML-Elementen soll sich der Größe des Browser-Windows anpassen, nicht umgekehrt. Lösche sämtliche CSS-Attribute, mit denen du die Seite im Viewport festnageln willst. Dazu gehören position:absolute, position:fixed sowie Angaben für Höhe, Breite, Positionierung vom Rand, etc.
3. Lege das background-image nicht in ein extra Div, sondern auf den Body oder den Container, in dem du deinen Content schreibst.
4. Der Container mit dem Maincontent erhält eine feste width aber keine height, weil er sich dann in der Höhe dynamisch anpasst. Gib ihm im CSS ein margin:auto, wenn er horizontal mittig im Browserwindow stehen werden soll.