¿Cómo puedo ajustar o dividir texto / palabra largos en un intervalo de ancho fijo?


104

Quiero crear un intervalo con un ancho fijo que cuando escribo cualquier cosa en el intervalo <span>lgasdfjksdajgdsglkgsadfasdfadfasdfadsfasdfasddkgjk</span>, como una cadena larga de texto sin espacios, la palabra (s) se rompa o se ajuste a la siguiente línea.

¿Algunas ideas?

Respuestas:


192

Puede usar la propiedad CSS word-wrap:break-word;, que dividirá las palabras si son demasiado largas para el ancho de su tramo.

span { 
    display:block;
    width:150px;
    word-wrap:break-word;
}
<span>VeryLongLongLongLongLongLongLongLongLongLongLongLongExample</span>


1
Funciona bien para el control de etiquetas asp.net. ¡Gracias!
— etlds

41
Agregar white-space: normalayuda a anular el estilo externo que puede interferir :) .. inline-blockfunciona tan bien comoblock
— Katia

¿Qué hay de romper dos tramos que están dentro de un elemento de bloque?
— Daniel Springer

Para aquellos que aún tienen problemas después de usar esta respuesta, asegúrese de especificar un 'ancho'; de lo contrario, es posible que no funcione
— Staccato

Debe tener un ancho para saber dónde romper
— DFSFOT

40

Intente seguir css con la adición de white-space:

span {
    display: block;
    word-wrap:break-word;
    width: 50px;
    white-space: normal
}

5
¡Gracias! ¡No podía entender por qué mi texto nunca terminaba! el espacio en blanco fue la razón.
— mdiehl13

1
Mi problema también se solucionó una vez que puse:white-space: normal
— majorBummer

Aquí hay una tabla de referencia en caso de que necesite espacios en blanco y envoltura: css-tricks.com/almanac/properties/w/whitespace
— Hritik

16

Me gusta esto

MANIFESTACIÓN

  li span{
    display:block;
    width:50px;
    word-break:break-all;
}

mi amigo quiero cuando pongo ancho de tramo: 50px; ¡los valores en mi intervalo solo se muestran en 50px y otros valores pasan a la siguiente línea y se muestran en 50px!
— محمد کثیری

1
@ mamal10 Consulta la solución de Maxime Lorant.
— Mr_Green

3

De forma predeterminada, a spanes un inlineelemento ... así que ese no es el comportamiento predeterminado.

Puede hacer que el spancomportamiento se comporte de esa manera agregando display: block;a su CSS.

span {
    display: block;
    width: 100px;
}


0

Solo para ampliar el alcance práctico de la pregunta y como un apéndice a las respuestas dadas: a veces uno puede encontrar necesario especificar los selectores un poco más.

Al definir el intervalo completo como display: inline-block, es posible que tenga dificultades para mostrar imágenes.

Por lo tanto, prefiero definir un lapso así:

span {
  display:block;
  width:150px;
  word-wrap:break-word;      
}
p span, a span,
h1 span, h2 span, h3 span, h4 span, h5 span {
  display:inline-block;
}
img{
  display:block;
}

0

En mi caso, display: block estaba rompiendo el diseño según lo previsto.

La max-widthpropiedad me acaba de salvar.

y para peinar, también puedes usar text-overflow: ellipsis.

mi código era

max-width: 255px
overflow:hidden
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.