Ich versuche, ein Div in CSS auf eine bestimmte prozentuale Höhe festzulegen
Prozentsatz von was?
Um eine prozentuale Höhe festzulegen, muss das übergeordnete Element (*) eine explizite Höhe haben. Dies ist insofern ziemlich selbstverständlich, als wenn Sie die Höhe als belassen auto
, der Block die Höhe seines Inhalts annimmt ... aber wenn der Inhalt selbst eine Höhe hat, ausgedrückt als Prozentsatz des Elternteils, das Sie selbst ein wenig gemacht haben Catch 22. Der Browser gibt auf und verwendet nur die Inhaltshöhe.
Das übergeordnete Element des div muss also eine explizite height
Eigenschaft haben. Während diese Höhe auch ein Prozentsatz sein kann, wenn Sie möchten, bringt dies das Problem nur auf die nächste Ebene.
Wenn Sie die Div-Höhe zu einem Prozentsatz der Ansichtsfensterhöhe machen möchten, muss jeder Vorfahr des Div, einschließlich <html>
und <body>
, haben height: 100%
, sodass es eine Kette expliziter Prozenthöhen bis zum Div gibt.
(*: oder, wenn das div positioniert ist, der 'enthaltende Block', der der nächste Vorfahr ist, der ebenfalls positioniert werden soll.)
Alternativ unterstützen alle modernen Browser und IE> = 9 neue CSS-Einheiten in Bezug auf die Höhe des Ansichtsfensters ( vh
) und die Breite des Ansichtsfensters ( vw
):
div {
height:100vh;
}
Sehen Sie hier für weitere Informationen .
height
Eigenschaft mit Prozentwerten: stackoverflow.com/a/31728799/3597276