Wie kann ich feststellen, dass eine Flexbox-Layoutzeile den verbleibenden vertikalen Platz in einem Browserfenster belegt?
Ich habe ein 3-reihiges Flexbox-Layout. Die ersten beiden Zeilen haben eine feste Höhe, aber die dritte ist dynamisch und ich möchte, dass sie auf die volle Höhe des Browsers anwächst.
Ich habe eine andere Flexbox in Zeile 3, die eine Reihe von Spalten erstellt. Um Elemente in diesen Spalten richtig anzupassen, müssen sie die volle Höhe des Browsers verstehen - für Dinge wie Hintergrundfarbe und Elementausrichtungen an der Basis. Das Hauptlayout würde letztendlich so aussehen:
.vwrapper {
display: flex;
flex-direction: column;
flex-wrap: nowrap;
justify-content: flex-start;
align-items: stretch;
align-content: stretch;
//height: 1000px;
}
.vwrapper #row1 {
background-color: red;
}
.vwrapper #row2 {
background-color: blue;
}
.vwrapper #row3 {
background-color: green;
flex 1 1 auto;
display: flex;
}
.vwrapper #row3 #col1 {
background-color: yellow;
flex 0 0 240px;
}
.vwrapper #row3 #col2 {
background-color: orange;
flex 1 1;
}
.vwrapper #row3 #col3 {
background-color: purple;
flex 0 0 240px;
}
<body>
<div class="vwrapper">
<div id="row1">
this is the header
</div>
<div id="row2">
this is the second line
</div>
<div id="row3">
<div id="col1">
col1
</div>
<div id="col2">
col2
</div>
<div id="col3">
col3
</div>
</div>
</div>
</body>
Ich habe versucht, ein height
Attribut hinzuzufügen , das funktioniert, wenn ich es auf eine harte Zahl setze, aber nicht, wenn ich es setze 100%
. Ich verstehe, dass height: 100%
es nicht funktioniert, weil der Inhalt das Browserfenster nicht ausfüllt. Kann ich die Idee jedoch mithilfe des Flexbox-Layouts replizieren?