He estado usando word-wrap: break-word
para envolver texto en div
syspan
s. Sin embargo, no parece funcionar en las celdas de la tabla. Tengo una tabla establecida en width:100%
, con una fila y dos columnas. El texto en columnas, aunque está diseñado con lo anterior word-wrap
, no se ajusta. Hace que el texto pase los límites de la celda. Esto sucede en Firefox, Google Chrome e Internet Explorer.
Así es como se ve la fuente:
td {
border: 1px solid;
}
<table style="width: 100%;">
<tr>
<td>
<div style="word-wrap: break-word;">
Looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong word
</div>
</td>
<td><span style="display: inline;">Short word</span></td>
</tr>
</table>
La palabra larga de arriba es más grande que los límites de mi página, pero no se rompe con el HTML anterior. He intentado las sugerencias a continuación de agregar text-wrap:suppress
y text-wrap:normal
, pero ninguna me ayudó.
html
css
html-table
psicotik
fuente
fuente
white-space: pre-wrap
developer.mozilla.org/en-US/docs/Web/CSS/white-spaceRespuestas:
Lo siguiente funciona para mí en Internet Explorer. Tenga en cuenta la adición del
table-layout:fixed
atributo CSSfuente
<colgroup>
, me arregló esto.o
fuente
<span>
.Word-wrap
table-layout: fixed;
.Una posibilidad remota, pero verifique con Firebug (o similar) que no está heredando accidentalmente la siguiente regla:
Esto puede anular su comportamiento de salto de línea especificado.
fuente
white-space:normal;
Resulta que no hay una buena manera de hacer esto. Lo más cerca que llegué es agregar "desbordamiento: oculto"; al div alrededor de la mesa y perdiendo el texto. Sin embargo, la verdadera solución parece ser abandonar la mesa. Usando divs y posicionamiento relativo pude lograr el mismo efecto, menos el legado de
<table>
ACTUALIZACIÓN 2015: Esto es para aquellos como yo que quieren esta respuesta. Después de 6 años, esto funciona, gracias a todos los contribuyentes.
fuente
Como se mencionó, poner el texto dentro de
div
casi funciona. Solo tiene que especificar elwidth
dediv
, que es una suerte para los diseños que son estáticos.Esto funciona en FF 3.6, IE 8, Chrome.
fuente
min-width: 100%
junto conwidth
para asegurarse de quediv
ocupa toda la celda.Long,Long,Long,Long,Long
. Quiero terminar esto después de cualquier coma (,).Solución alternativa que utiliza overflow-wrap y funciona bien con un diseño de tabla normal + ancho de tabla 100%
https://jsfiddle.net/krf0v6pw/
HTML
CSS
Beneficios:
overflow-wrap:break-word
lugar deword-break:break-all
. Lo cual es mejor porque primero trata de romper espacios, y corta la palabra solo si la palabra es más grande que su contenedor.table-layout:fixed
necesario Use su tamaño automático habitual.width
o fijomax-width
en píxeles. Definir%
el padre si es necesario.Probado en FF57, Chrome62, IE11, Safari11
fuente
Cambia tu código
a
Ejemplo
fuente
break-word
en primer lugar.Problema con
es que no funcionará tan bien cuando el texto tenga algunos espacios, p. ej.
Si la palabra
andthenlongerwithoutspaces
encaja en la celda de la tabla en una línea perolong text with andthenlongerwithoutspaces
no, la palabra larga se dividirá en dos, en lugar de estar ajustada.Solución alternativa: inserte U + 200B ( ZWSP ), U + 00AD ( guión suave ) o U + 200C ( ZWNJ ) en cada palabra larga después de cada, digamos 20 caracteres (sin embargo, vea la advertencia a continuación):
Advertencia : la inserción de caracteres adicionales de longitud cero no afecta la lectura. Sin embargo, afecta el texto copiado en el portapapeles (estos caracteres, por supuesto, también se copian). Si el texto del portapapeles se usa más tarde en alguna función de búsqueda en la aplicación web ... la búsqueda se interrumpirá. Aunque esta solución se puede ver en algunas aplicaciones web bien conocidas, evítela si es posible.
Advertencia : al insertar caracteres adicionales, no debe separar varios puntos de código dentro del grafema. Consulte https://unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries para obtener más información.
fuente
é
pueden escribirse como dos puntos de código). Probablemente realmente queremos decir "grafemas", pero no conozco ningún lenguaje que haga que sea trivial recorrerlos.Mira esta demo
Aquí está el enlace para leer
fuente
break-all
hará que el navegador ignore por completo los saltos de palabra cuando decida dónde colocar saltos de línea, con el efecto de que incluso si su celda contiene prosa normal sin palabras muy largas, terminará con saltos de línea en el medio de las palabras. Esto es típicamente indeseable.Probado en IE 8 y Chrome 13.
Esto hace que la tabla se ajuste al ancho de la página y que cada columna ocupe el 50% del ancho.
Si prefiere la primera columna para ocupar más de la página, añadir una
width: 80%
a latd
como en el siguiente ejemplo, la sustitución de 80% con el porcentaje de su elección.fuente
Lo único que debe hacerse es agregar ancho al interior
<td>
o al<div>
interior<td>
según el diseño que desee lograr.p.ej:
o
fuente
La respuesta que ganó la recompensa es correcta, pero no funciona si la primera fila de la tabla tiene una celda fusionada / unida (todas las celdas tienen el mismo ancho).
En este caso, debe usar las etiquetas
colgroup
ycol
para mostrarlo correctamente:fuente
fuente
p
dentro de una celda de la tabla que no tiene un ancho de píxel fijo seguramente terminaráp
desbordándose o no llenando la celda de la tabla.Parece que necesita establecer
word-wrap:break-word;
un elemento de bloque (div
), con un ancho especificado (no relativo). Ex:o usando
word-break:break-all
la sugerencia de Abhishek Simon.fuente
Esto funciona para mi:
Y el atributo de la tabla es:
fuente
table-layout: fixed
, pero ya hay una respuesta mucho más antigua que sugiere eso, por lo que esta respuesta no agrega ninguna información nueva.Si no necesita un borde de tabla, aplique esto:
fuente
table-layout: fixed
; este no agrega nada nuevo a la página.Encontré una solución que parece funcionar en Firefox, Google Chrome e Internet Explorer 7-9. Para hacer un diseño de tabla de dos columnas con texto largo en un lado. Busqué un problema similar en todas partes, y lo que funcionó en un navegador rompió el otro, o agregar más etiquetas a una tabla parece una mala codificación.
NO utilicé una tabla para esto. DL DT DD al rescate. Al menos para arreglar un diseño de dos columnas, eso es básicamente una configuración de glosario / diccionario / significado de palabras.
Y algo de estilo genérico.
Utilizando el ajuste flotante y el margen izquierdo, obtuve exactamente lo que necesitaba. Solo pensé en compartir esto con otros, tal vez ayude a alguien más con un diseño de estilo de definición de dos columnas, con problemas para que las palabras se ajusten.
Intenté usar word-wrap en la celda de la tabla, pero solo funcionó en Internet Explorer 9 (y Firefox y Google Chrome, por supuesto) principalmente tratando de arreglar el navegador roto de Internet Explorer aquí.
fuente
Las tablas se ajustan de forma predeterminada, así que asegúrese de que la visualización de las celdas de la tabla sea
table-cell
:fuente
style = "table-layout: fixed; width: 98%; word-wrap: break-word"
Demostración: http://jsfiddle.net/Ne4BR/749/
Esto funciono muy bien para mi. Tenía enlaces largos que harían que la tabla superara el 100% en los navegadores web. Probado en IE, Chrome, Android y Safari.
fuente
table-layout: fixed
".Una solución que funciona con Google Chrome y Firefox (no probado con Internet Explorer) es establecer
display: table-cell
como un elemento de bloque.fuente
Puedes probar esto si te conviene ...
Coloque un área de texto dentro de su td y desactívelo con el color de fondo blanco y defina su número de filas.
fuente