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>
En Chrome, el texto se ajusta como se esperaba:
Pero, en IE11, el texto no se ajusta :
¿Es este un error conocido en IE? (en caso afirmativo, se apreciará un puntero)
¿Hay alguna solución conocida?
Esta pregunta similar no tiene una respuesta definitiva y un puntero oficial.
css
internet-explorer
flexbox
internet-explorer-11
Misha Moroshko
fuente
fuente
align-items: center
del elemento padre. Eso parece ser lo que lo está causandoRespuestas:
Agregue esto a su código:
Sabemos que se supone que un hijo de nivel de bloque ocupa todo el ancho del padre.
Chrome entiende esto.
IE11, por cualquier razón, quiere una solicitud explícita.
Usando
flex-basis: 100%
oflex: 1
también funciona.Mostrar fragmento de código
Nota: A veces será necesario clasificar los distintos niveles de la estructura HTML para determinar qué contenedor obtiene el
width: 100%
. El texto de ajuste CSS no funciona en IEfuente
flex: 1 1 50%; display: flex; align-items: center;
No es sorprendente que IE falle mientras ajusta textos largos en las celdas. ¡La configuraciónwidth:100%
funciona, pero la configuraciónmin-width: 100%
no! Debería, pero no funciona) t (como todas las cosas IE), así que probémax-width: 99%
, y sorprendentemente, que hace el trabajo Creo usando.width:100%
podría ser mejor?flex-direction: column
a los padres para que esto funcione.Tuve el mismo problema y el punto es que el elemento no estaba adaptando su ancho al contenedor.
En lugar de usar
width:100%
, sea consistente (no mezcle el modelo flotante y el modelo flex) y use flex agregando esto:O:
Esto funcionó para mí.
fuente
Como Tyler ha sugerido en uno de los comentarios aquí, usando
en el niño puede trabajar (trabajó para mí). Utilizando
align-self: stretch
solo funciona si no estás usandoalign-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.fuente
Hola, tuve que aplicar el ancho del 100% a su elemento abuelo. No es su elemento (s) hijo (s).
fuente
De alguna manera, todas estas soluciones no funcionaron para mí. Claramente hay un error de IE en
flex-direction:column
.Solo lo hice funcionar después de eliminar
flex-direction
:fuente
Las soluciones propuestas no me ayudaron con ".child {width: 100%;}", ya que tenía un marcado más complicado. Sin embargo, encontré una solución: eliminar "align-items: center;", y también funciona para este caso.
fuente
align-items: center
. Ver stackoverflow.com/a/39365207/630170La única forma en que he podido evitar el 100% de este error de columna de dirección flexible consiste en utilizar una consulta de medios de ancho mínimo para asignar un ancho máximo al elemento secundario en pantallas de tamaño de escritorio.
Deberá establecer elementos secundarios en línea de forma natural (p. Ej.
<span>
O<a>
) en algo distinto de en línea (principalmente display: block o display: inline-block) para que la corrección funcione.fuente
No encontré mi solución aquí, tal vez alguien sea útil:
¡Buena suerte!
fuente
Esto funcionó para mí.
fuente
Yo también me encontré con este problema.
La única alternativa es definir un ancho (o ancho máximo) en los elementos secundarios. IE 11 es un poco estúpido, y yo solo pasé 20 minutos para darme cuenta de esta solución.
fuente
Tuve un problema similar con el desbordamiento de imágenes en un contenedor flexible.
Agregar
flex-basis: 100%;
oflex: 1;
al niño desbordado fijo funcionó para mí.fuente
¿Por qué usar una solución complicada si también funciona una simple?
fuente