texto tamaño sobrepasa div contenido celda boton bootstrap ancho ajustar css css3 internet-explorer flexbox internet-explorer-11

css - tamaño - ajustar texto en boton html



El texto en un contenedor flexible no se ajusta en IE11 (8)

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 una solución conocida?

Esta pregunta similar no tiene una respuesta definitiva y un puntero oficial.


¿Por qué usar una solución complicada si también funciona una simple?

.child { white-space: normal; }


Agregue esto a su código:

.child { width: 100%; }

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.

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

.parent { display: flex; flex-direction: column; width: 400px; border: 1px solid red; align-items: center; } .child { border: 1px solid blue; width: calc(100% - 2px); /* NEW; used calc to adjust for parent borders */ }

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

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 IE


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

max-width: 100%;

en el niño puede trabajar (trabajó para mí). Usar align-self: stretch solo funciona si no está 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.


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 :

flex-wrap: wrap; align-items: center; align-content: center;


Hola, tuve que aplicar el ancho del 100% a su elemento abuelo. No es su elemento (s) hijo (s).

.grandparent { float:left; clear: both; width:100%; //fix for IE11 text overflow } .parent { display: flex; border: 1px solid red; align-items: center; } .child { border: 1px solid blue; }


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

.parent { display: flex; flex-direction: column; } //a media query targeting desktop sort of sized screens @media screen and (min-width: 980px) { .child { display: block; max-width: 500px;//maximimum width of the element on a desktop sized screen } }

Deberá establecer elementos secundarios en línea de forma natural (por ejemplo, <span> o <a> ) en algo que no sea en línea (principalmente display: block o display: inline-block) para que la corrección funcione.


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.

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


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 flexible) y use flex agregando esto:

.child { align-self: stretch; }

O:

.parent { align-items: stretch; }

Esto funcionó para mí.