¿Cómo forzar un salto de línea en una palabra loooooong en un DIV?


Bien, esto me está confundiendo. Tengo algo de contenido dentro de un div como así:

<div style="background-color: green; width: 200px; height: 300px;">

Thisisatest.Thisisatest.Thisisatest.Thisisatest.Thisisatest.Thisisatest.

</div>

Sin embargo, el contenido desborda el DIV (como se esperaba) porque la 'palabra' es demasiado larga.

¿Cómo puedo forzar al navegador a 'romper' la palabra cuando sea necesario para que quepa todo el contenido dentro?

Author: tubaguy50035, 2010-06-17

13 answers

Uso word-wrap:break-word;

Incluso funciona en IE6, lo cual es una agradable sorpresa.

 511
Author: Chi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-09 10:33:58

No estoy seguro de la compatibilidad del navegador

word-break: break-all;

También se puede utilizar <wbr> tag

<wbr> (word break) significa: "El navegador puede insertar un salto de línea aquí, si desear."Si el navegador no piensa un salto de línea necesario nada suceder.

 110
Author: rahul,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-06-17 04:29:46

Esto podría añadirse a la respuesta aceptada para una solución 'cross-browser'.

Fuentes:

CSS

.your_element{
    -ms-word-break: break-all;
    word-break: break-all;

 /* Non standard for webkit */
     word-break: break-word;

    -webkit-hyphens: auto;
       -moz-hyphens: auto;
        -ms-hyphens: auto;
            hyphens: auto;
}
 84
Author: Milche Patern,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-30 15:04:04

Yo estaba buscando en Google el mismo problema, y publicado mi solución final AQUÍ . También es relevante para esta pregunta, así que espero que no te importe volver a publicar.

Puede hacer esto fácilmente con un DIV dándole el estilo word-wrap: break-word (y es posible que también necesite establecer su ancho).

div {
    word-wrap: break-word;         /* All browsers since IE 5.5+ */
    overflow-wrap: break-word;     /* Renamed property in CSS3 draft spec */
    width: 100%;
}

Sin embargo, para las tablas, también debe aplicar: table-layout: fixed. Esto significa que los anchos de las columnas ya no son fluidos, sino que se definen en función de los anchos de las columnas primera fila solamente (o a través de anchos especificados). Lea más aquí.

Código de ejemplo:

table {
    table-layout: fixed;
    width: 100%;
}

table td {
    word-wrap: break-word;         /* All browsers since IE 5.5+ */
    overflow-wrap: break-word;     /* Renamed property in CSS3 draft spec */
}

Espero que eso ayude a alguien.

 30
Author: Simon East,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:47:22

&#8203; es la entidad HTML para un carácter unicode llamado espacio de ancho cero (ZWSP) que es un carácter invisible que especifica una oportunidad de salto de línea. Del mismo modo, el propósito del guion es especificar una oportunidad de salto de línea dentro del límite de una palabra.

 20
Author: davidcondrey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-10 08:25:56

Encontró que el uso de lo siguiente funcionó en la mayoría de los navegadores principales (Chrome, IE, Safari iOS/OSX), excepto Firefox (v50.0.2) cuando se utiliza flex-box y se basa en width: auto.

.your_element {
    word-wrap: break-word;   
    overflow-wrap: break-word;
    word-break: break-word;
}

Nota: es posible que necesite agregar prefijos de proveedor del navegador si no está utilizando un autoprefixer.

Otra cosa a tener en cuenta es que el texto usando &nbsp; para el espaciado puede causar saltos de línea a mitad de palabra.

 15
Author: Andrew,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-02 01:19:59

CSS word-wrap:break-word;, probado en FireFox 3.6.3

 7
Author: Babiker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-06-17 04:37:21

Resolví mi problema con el código de abajo.

display: table-caption;
 3
Author: Thadeu Esteves Jr.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-04 19:20:41

Primero debe identificar el ancho de su elemento. Eg:

<div id="sampleDiv">aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</div>

#sampleDiv{
  width: 80%;
  word-wrap:break-word;
}

De modo que cuando el texto alcance el ancho del elemento, se dividirá en líneas.

 1
Author: Tran Nam Hung,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-20 10:22:21

De MDN:

La propiedad CSS overflow-wrap especifica si el navegador debe o no insertar saltos de línea dentro de las palabras para evitar que el texto rebose su caja de contenido.

En contraste con word-break, overflow-wrap solo creará un descanso si una palabra entera no se puede colocar en su propia línea sin desbordarse.

Así que puedes usar:

overflow-wrap: break-word;

Puedo usar?

 1
Author: Shiva127,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-07 06:53:28

Eliminar white-space: nowrap, si hay alguno.

Implementar:

    white-space: inherit;
    word-break: break-word;
 0
Author: Vineet Kumar Singh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-24 14:09:39

Haz esto:

<div id="sampleDiv">aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</div>

#sampleDiv{
   overflow-wrap: break-word;
}
 -3
Author: amit bende,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-22 03:52:20

Solo prueba esto en nuestro estilo

white-space: normal;
 -4
Author: Benjamin Fuentes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-07 09:26:15