propiedad manejo container html css css3 flexbox

html - container - manejo de flexbox



¿Cómo puedo hacer que mi diseño de flexbox ocupe un espacio vertical del 100%? (2)

Debe establecer la height de html, body, .wrapper en 100% (para heredar la altura completa) y luego simplemente establecer un valor flex mayor que 1 en .row3 y no en los demás.

.wrapper, html, body { height: 100%; margin: 0; } .wrapper { display: flex; flex-direction: column; } #row1 { background-color: red; } #row2 { background-color: blue; } #row3 { background-color: green; flex:2; display: flex; } #col1 { background-color: yellow; flex: 0 0 240px; } #col2 { background-color: orange; flex: 1 1; } #col3 { background-color: purple; flex: 0 0 240px; }

<div class="wrapper"> <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>

DEMO

¿Cómo puedo decirle a una fila de diseño de Flexbox que consuma el espacio vertical restante en una ventana del navegador?

Tengo un diseño de 3 filas de flexbox. Las dos primeras filas son de altura fija, pero la tercera es dinámica y me gustaría que crezca a la altura máxima del navegador.

Tengo otra flexbox en la fila 3 que crea un conjunto de columnas. Para ajustar correctamente los elementos dentro de estas columnas, necesito que entiendan la altura completa del navegador, por ejemplo, el color de fondo y las alineaciones de elementos en la base. El diseño principal se asemejaría en última instancia a esto:

.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>

Intenté agregar un atributo de height , que funciona cuando lo configuro en un número difícil, pero no cuando lo configuro al 100% . Entiendo la height: 100% no funciona, porque el contenido no está llenando la ventana del navegador, pero ¿puedo replicar la idea usando el diseño de la caja flexible?


establecer la envoltura a la altura del 100%

.vwrapper { display: flex; flex-direction: column; flex-wrap: nowrap; justify-content: flex-start; align-items: stretch; align-content: stretch; height: 100%; }

y establecer la tercera fila para crecer y crecer

#row3 { background-color: green; flex: 1 1 auto; display: flex; }

demo