Jak mogę sprawdzić, czy wiersz układu flexbox zajmuje pozostałą przestrzeń w pionie w oknie przeglądarki?
Mam 3-rzędowy układ flexbox. Pierwsze dwa rzędy mają stałą wysokość, ale trzeci jest dynamiczny i chciałbym, aby urósł do pełnej wysokości przeglądarki.
Mam inny flexbox w wierszu-3, który tworzy zestaw kolumn. Aby poprawnie dopasować elementy w tych kolumnach, potrzebuję, aby rozumieli pełną wysokość przeglądarki - na przykład kolor tła i wyrównanie elementów u podstawy. Główny układ ostatecznie przypominałby to:
.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>
Próbowałem dodać height
atrybut, który działa, gdy ustawię go na twardą liczbę, ale nie, gdy ustawię go na 100%
. Rozumiem height: 100%
, że nie działa, ponieważ zawartość nie wypełnia okna przeglądarki, ale czy mogę odtworzyć pomysł za pomocą układu flexbox?
Odpowiedzi:
Należy ustawić
height
odhtml, body, .wrapper
do100%
(w kolejności do dziedziczenia pełnej wysokości), a następnie po prostu ustawićflex
większą wartość niż1
do.row3
, a nie na innych.PRÓBNY
źródło
ustaw owijkę na wysokość 100%
i ustaw trzeci rząd na elastyczny wzrost
próbny
źródło
Pokażę Ci inny sposób, który działa w 100%. Dodam też trochę dopełnienia dla przykładu.
Jak widać, możemy to osiągnąć dzięki kilku opakowaniom do kontroli, wykorzystując atrybut flex-grow & flex-direction.
1: Kiedy nadrzędny „flex-direction” jest „wierszem”, jego potomny „flex-grow” działa poziomo. 2: Kiedy nadrzędny „flex-direction” jest „column”, jego potomny „flex-grow” działa pionowo.
Mam nadzieję że to pomoże
Daniel
źródło
div
przesada.flex-pad-y
:)