¿Puedo evitar que el texto en un bloque div se desborde?

132

¿Puedo evitar que el texto en un bloque div se desborde?

Clemente Herreman
fuente
1
¿Por qué se desborda tu texto?
Virat Kadaru el
3
@ViratKadaru ... porque es 360pt Gregorian Chant Serif
DukeDidntNukeEm

Respuestas:

163

Si desea que el texto desbordado en el div se marque automáticamente en lugar de ocultarse o crear una barra de desplazamiento, use el

word-wrap: break-word

propiedad.

Amalgovinus
fuente
El usuario debe verificar esto como la respuesta. ¡Funcionó para mí hoy! ¡Gracias compañero!
Eduardo A. Fernández Díaz
¡Oh Dios mío, muchas gracias por esto, literalmente me he vuelto loco por algunos problemas que podría resolver con tu respuesta! XD
Sven
77

Puedes probar:

<div id="myDiv">
    stuff 
</div>

#myDiv {
    overflow:hidden;
}

Consulte los documentos de la propiedad de desbordamiento para obtener más información.

brettkelly
fuente
34
Esos no son "los documentos", es un sitio web con información básica sobre HTML / CSS. Los documentos están en w3.org
DisgruntledGoat
18

Puede controlarlo con CSS, hay algunas opciones:

  • oculto -> Todo el texto desbordado estará oculto.
  • visible -> Deje que el texto se desborde visible.
  • desplazarse -> poner barras de desplazamiento si el texto se desborda

Espero eso ayude.

Timothée Martin
fuente
15

Simplemente use esto:

white-space: pre-wrap;      /* CSS3 */   
white-space: -moz-pre-wrap; /* Firefox */    
white-space: -pre-wrap;     /* Opera <7 */   
white-space: -o-pre-wrap;   /* Opera 7 */    
word-wrap: break-word;      /* IE */
Pmpr
fuente
11

hay otra propiedad css:

white-space : normal;

La propiedad de espacio en blanco controla cómo se maneja el texto en el elemento al que se aplica.

div {

  /* This is the default, you don't need to
     explicitly declare it unless overriding
     another declaration */
  white-space: normal; 

}
Sachin
fuente
1
Esto es realmente útil en combinación con desbordamiento: oculto;
koppor
4

overflow: scroll? O auto. en el atributo de estilo

frijol
fuente
1

Si su div tiene una altura establecida en css que hará que se desborde fuera del div.

Puede darle al div una altura mínima si necesita que sea una altura mínima en el div en todo momento.

Sin embargo, la altura mínima no funcionará en IE6, si tiene una hoja de estilo específica de IE6, puede darle una altura regular para IE6. La altura cambia en IE6 según el contenido que contiene.

Sir David de Lee
fuente
1

Simplemente puede establecer el ancho mínimo en el CSS, por ejemplo:

.someClass{min-width: 980px;}

No se romperá, sin embargo, todavía tendrá que lidiar con la barra de desplazamiento.

Damir Olejar
fuente
1

Recomendaciones sobre cómo detectar qué parte de su CSS está causando el problema:

1) configure style="height:auto;"todos los <div>elementos y vuelva a intentarlo.

2) Establezca style="border: 3px solid red;"todos los <div>elementos para ver qué tan amplia de un área <div>ocupa su caja.

3) Quite todas las height:#px;propiedades CSS de su CSS y comience de nuevo.

Así por ejemplo:

<div id="I" style="height:auto;border: 3px solid red;">I
    <div id="A" style="height:auto;border: 3px solid purple;">A
        <div id="1A" style="height:auto;border: 3px solid green;">1A
        </div>
        <div id="2A" style="height:auto;border: 3px solid green;">2A
        </div>
    </div>
    <div id="B" style="height:auto;border: 3px solid purple;">B
        <div id="1B" style="height:auto;border: 3px solid green;">1B
        </div>
        <div id="2B" style="height:auto;border: 3px solid green;">2B
        </div>
    </div>
</div>
Gene
fuente
1
.NonOverflow {
    width: 200px; /* Need the width for this to work */
    overflow: hidden;
}
<div class="NonOverflow">
    Long Text
</div>
Kirtan
fuente
en texto multilingüe que no sea, hace que algunos caracteres de palabras largas se oculten de la pantalla.
Bhupi
0

!! ¡ Tradoff codificado por delante! Dependiendo del código circundante y la resolución de la pantalla, esto podría conducir a un comportamiento diferente / no deseado

Si el desbordamiento oculto está fuera de discusión y se necesita un guión correcto, puede usar la entidad HTML de guión suave donde desea que se rompa la palabra / texto. De esta forma, puede predeterminar manualmente un punto de ruptura.

&shy;

El guión solo aparecerá cuando la palabra deba romperse para no desbordar su contenedor circundante.

Ejemplo:

<div class="container">
  foo&shy;bar
</div>

Resultado si el contenedor es lo suficientemente ancho y el texto no lo desbordaría:

foobar

Resultado si el contenedor es demasiado pequeño y el texto realmente desbordaría el contenedor:

foo-
bar

.container{
  background-color: green;
  max-width: 30px;
}
Example 1 - container to small => text overflows container:

<div class="container">
  foobar
</div>

Example 2 - using soft hyphen => text breaks at predetermined break point:

<div class="container">
  foo&shy;bar
</div>

Example 3 - using soft hyphen => text still overflowing because the text before the soft hyphen is to long:

<div class="container">
  foobar&shy;foo
</div>

Más información: https://en.wikipedia.org/wiki/Soft_hyphen

janDo
fuente