Hallo
Du hast den Sinn von HTML / CSS noch nicht verstanden.
HTML und CSS sind dafür ausgelegt Informationen zu übermitteln. Nicht aber um unsinnige Layouts zu erstellen, die nichts mit der Informationsübermittlung zu tun haben. Solche Layoutwünsche können häufig nur mit Tricks umgesetzt werden.
Grundsätzlich richtet sich die Höhe von Containern nach ihrem Inhalt. Du willst genau das Gegenteil erreichen, nämlich dass sich die Höhe eines Containers nicht nach seinem Inhalt, sondern nach den ihn umgebenden Container richtet.
Da so ein Konstrukt zur Informationsübermittlung nicht notwendig ist gibt es dafür in HTML und CSS keine direkte Lösung. Du musst also basteln.
Zunächst musst du dafür sorgen, dass die Container im Dokumentenfluß bleiben. Wenn du dem inneren Container position: absolute (oder auch ein float) verpasst wird er aus dem Dokumentenfluß herausgehoben. Folge: Der äußere und der innere Container können nicht mehr aufeinander reagieren.
Dann benötigt der äußere Container eine Höhe, nach der der innere sich richten kann.
Erforderlichenfalls müssen auch weitere umgebende Container bis html und body Höhenangaben (height, min-height) bekommen.
Sofern diese Vorgaben erfüllt sind kann der innere Container mit Prozentangaben für seine Höhe auf den umgebenden Container reagieren. In deinem Beispiel height: 50%;
Die horizontrale Zentrierung erfolgt dann mittels Flexbox: align-items: center;
Gruss
MrMurphy
|