Einzelnen Beitrag anzeigen
  #4 (permalink)  
Alt 11.01.2017, 08:42
MrMurphy MrMurphy ist offline
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 10.01.2010
Beiträge: 949
MrMurphy ist ein sehr geschätzer MenschMrMurphy ist ein sehr geschätzer MenschMrMurphy ist ein sehr geschätzer Mensch
Standard

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
Mit Zitat antworten