Hallo Ben,
in deinem HTML fehlt der Doctype. Außerdem kannst Du mit Vorteil semantische Tags verwenden: Die Überschriften, h1, h2, usw. und Absatz p gibt es schon ewig aber in letzter Zeit sind Dinge wie header, main, nav, figure, figcaption etc. hinzu gekommen.
Ich habe zunächst eine Testseite mit deinem HTML gemacht, jedoch sah diese ziemlich zerlegt aus. Aus deinem HTML kann man jedoch ablesen, was Du vorhast: Das Browserfenster soll vollständig ausgefüllt sein, ohne dass man scrollen muss. Der Header (dafür bietet sich das Tag <header>an) soll 25% der Höhe ausfüllen und der Hauptinhalt (Tag <main>) die restlichen 75%.
Ein Problem dabei, mit dem Du wahrscheinlich konfrontiert wirst: Diese Prozentangabe bezieht sich auf das Element ohne Border, Padding und Margin. Sind diese vorhanden, beansprucht das Element mehr als 100% der Breite.
Eine Lösung besteht darin, Flexlayout zu verwenden, das passt die Elemente ein ohne diese Probleme.
Du kannst dich hier auf html-seminar über die Grundlagen von Flexlayout informieren:
CSS Flexbox Layout - Design einfach umsetzen
Noch ein Hinweis: Damit die Elemente das Browserfenster vertikal vollständig ausfüllen musst Du html und body zunächst auf dessen Höhe einstellen:
html, body {
height: 100%;
}