El texto en un contenedor flexible no se ajusta en IE11

Resuelto Misha Moroshko asked hace 8 años • 13 respuestas

Considere el siguiente fragmento:

.parent {
  display: flex;
  flex-direction: column;
  width: 400px;
  border: 1px solid red;
  align-items: center;
}
.child {
  border: 1px solid blue;
}
<div class="parent">
  <div class="child">
    Lorem Ipsum is simply dummy text of the printing and typesetting industry
  </div>
  <div class="child">
    Lorem Ipsum is simply dummy text of the printing and typesetting industry
  </div>
</div>
Expandir fragmento

En Chrome, el texto se ajusta como se esperaba:

ingrese la descripción de la imagen aquí

Pero, en IE11, el texto no se ajusta :

ingrese la descripción de la imagen aquí

¿Es este un error conocido en IE? (en caso afirmativo, se agradecerá un consejo)

¿Existe alguna solución alternativa conocida?


Esta pregunta similar no tiene una respuesta definitiva ni un indicador oficial.

Misha Moroshko avatar Jan 31 '16 13:01 Misha Moroshko
Aceptado

Añade esto a tu código:

.child { width: 100%; }

Sabemos que se supone que un hijo a nivel de bloque ocupa todo el ancho del padre.

Chrome entiende esto.

IE11, por cualquier motivo, quiere una solicitud explícita.

Usar flex-basis: 100%o flex: 1también funciona.

Mostrar fragmento de código

Nota: A veces será necesario ordenar los distintos niveles de la estructura HTML para identificar qué contenedor obtiene el archivo width: 100%. El texto ajustado CSS no funciona en IE

Michael Benjamin avatar Jan 31 '2016 12:01 Michael Benjamin

Tuve el mismo problema y el caso es que el elemento no adaptaba su ancho al contenedor.

En lugar de usar width:100%, sea coherente (no mezcle el modelo flotante y el modelo flexible) y use flex agregando esto:

.child { align-self: stretch; }

O:

.parent { align-items: stretch; }

Esto funcionó para mí.

Andry avatar Sep 07 '2016 08:09 Andry

Como Tyler ha sugerido en uno de los comentarios aquí, usar

max-width: 100%;

en el niño puede funcionar (funcionó para mí). Usar align-self: stretchsolo funciona si no lo estás usando align-items: center(lo cual hice). width: 100%solo funciona si no tiene varios hijos dentro de su flexbox que desea mostrar uno al lado del otro.

dude avatar Jul 25 '2017 12:07 dude