¿Cómo estirar a los niños para llenar el eje transversal?


141

Tengo una flexbox izquierda-derecha:

.wrapper {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  width: 100%;
  height: 70vh;
  min-height: 325px; 
  max-height:570px; 
}
<div class="wrapper">
  <div class="left">Left</div>
  <div class="right">Right</div>
</div>

El problema es que el niño correcto no se comporta de manera receptiva. Para ser específico, quiero que llene la altura del contenedor.

¿Cómo lograr esto?


¡llena la altura de la envoltura! Lo probé en Chrome y Firefox y no hubo ningún problema. tal vez has simplificado demasiado tu código. puede probar esto configurando background-colorpara niños o configurando align-items: centeren el contenedor.
samad montazeri

sí, la altura del envoltorio no está llena de safari por algunas razones ... Chrome y Firefox lo hacen muy bien al establecer la altura: '100%' en los niños
Pencilcheck

Respuestas:


175
  • Los hijos de un contenedor de fila-flexbox llenan automáticamente el espacio vertical del contenedor.

  • Especifique flex: 1;para un niño si desea que llene el espacio horizontal restante:

.wrapper {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  width: 100%;
  height: 5em;
  background: #ccc;
}
.wrapper > .left
{
  background: #fcc;
}
.wrapper > .right
{
  background: #ccf;
  flex: 1; 
}
<div class="wrapper">
  <div class="left">Left</div>
  <div class="right">Right</div>
</div>

  • Especifique flex: 1;para ambos hijos si desea que llenen cantidades iguales del espacio horizontal:

.wrapper {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  width: 100%;
  height: 5em;
  background: #ccc;
}
.wrapper > div 
{
  flex: 1; 
}
.wrapper > .left
{
  background: #fcc;
}
.wrapper > .right
{
  background: #ccf;
}
<div class="wrapper">
  <div class="left">Left</div>
  <div class="right">Right</div>
</div>


37
flexes una propiedad resumida para flex-grow, flex-shrinky flex-basis. flex: 1;es equivalente a flex-grow: 1;.
Rory O'Kane

2
Parece que align-items: stretch;no es necesario
Matt
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.