Debe aplicar la siguiente propiedad CSS al bloque contenedor (div):
overflow-wrap: break-word;
Según las especificaciones (fuente CSS | MDN ):
La overflow-wrap
propiedad CSS especifica si el navegador debe insertar o no saltos de línea dentro de las palabras para evitar que el texto se desborde en su cuadro de contenido.
Con el valor establecido en break-word
Para evitar el desbordamiento, las palabras normalmente irrompibles se pueden dividir en puntos arbitrarios si no hay puntos de ruptura aceptables en la línea.
Vale la pena mencionar...
La propiedad era originalmente una extensión de Microsoft no estándar y sin prefijo llamada word-wrap
, y fue implementada por la mayoría de los navegadores con el mismo nombre. Desde entonces se le ha cambiado el nombre a overflow-wrap
, por word-wrap
ser un alias.
Si le preocupa la compatibilidad con navegadores heredados, vale la pena especificar ambos:
word-wrap : break-word;
overflow-wrap: break-word;
Ex. IE9 no reconoce overflow-wrap
pero funciona bien conword-wrap