que justificación grow flexible espacio ejemplo documentacion caja alrededor html css flexbox

html - justificación - Evite que una altura de elementos flexibles se expanda para coincidir con otros elementos flexibles



inline-flex (2)

Esta es una solución antigua. Mi respuesta es reemplazada por esta nueva respuesta de Aaron usando align-self . Esa es una mejor solución que no depende de un capricho de CSS.

Siempre que el contenedor flexible no tenga altura en sí mismo , puede establecer la height: 0% en el primer elemento flexible. Debido a que no tiene altura para heredar de su elemento primario, cualquier altura porcentual hará que colapse. Luego crecerá con sus contenidos.

Ejemplo

En este ejemplo, he eliminado el prefijo -webkit . Solo es realmente necesario para Safari y el prefijo se puede agregar por encima de la versión sin prefijo. También eliminé flex-direction: row ya que es el valor predeterminado.

.container { display: flex; } .flexbox-1 { flex: 1; height: 0%; border: solid 3px red; } .flexbox-2 { flex: 2; border: solid 3px blue; height: 200px; margin-left: 10px; }

<div class="container"> <div class="flexbox-1">.flexbox-1</div> <div class="flexbox-2">.flexbox-2</div> </div>

Tengo dos elementos dentro de un contenedor, que están uno al lado del otro utilizando la caja flexible. En el segundo elemento ( .flexbox-2 ), estoy configurando su altura en el CSS. Sin embargo, entonces el primer elemento ( .flexbox-1 ) coincidirá con la altura de .flexbox-2 . ¿Cómo puedo evitar que .flexbox-1 coincida con la altura de .flexbox-2 y, en su lugar, mantener su altura natural?

Esto es lo que tengo hasta ahora (también disponible como jsFiddle )

.container { display: -webkit-flex; -webkit-flex-direction: row; } .flexbox-1 { -webkit-flex: 1; border: solid 3px red; } .flexbox-2 { -webkit-flex: 2; border: solid 3px blue; height: 200px; margin-left: 10px; }

<div class="container"> <div class="flexbox-1">.flexbox-1</div> <div class="flexbox-2">.flexbox-2</div> </div>


Sé que esta es una vieja pregunta, pero una mejor solución es configurar el elemento flexible para que se alinee con el flex-start .

/* Default Styles */ .container { display: flex; } .flexbox-2 { flex: 2; border: solid 3px blue; height: 200px; margin-left: 10px; } .flexbox-1 { flex: 1; align-self: flex-start; border: solid 3px red; }

<div class="container"> <div class="flexbox-1">"align-self: flex-start;"</div> <div class="flexbox-2">.flexbox-2</div> </div>