2010-04-17 20 views
42

Tengo una tabla html y una columna (o <td>) contiene palabras muy largas. Quiero establecer el ancho máximo de la columna para que, si el texto es más largo que el ancho máximo, el texto se envuelva automáticamente a la siguiente línea. Intenté establecer el estilo css max-width en el elemento <td> correspondiente con "max-width:100px", pero no funciona. El texto sigue siendo muy largo y no se ajusta automáticamente a la siguiente línea.¿Por qué mi tabla html 'max-width' no causa que el texto se ajuste?

¿Alguna idea de lo que está mal o cualquier código de referencia de solución? Estoy usando IE 8 en Windows 7.

+9

Como se especifica en [especificación css 2.1] (http://www.w3.org/TR/CSS2/visudet.html#min-max-widths): "En CSS 2.1, el efecto de 'min-width' y 'max-width' en tablas, tablas en línea, celdas de tabla, columnas de tabla y grupos de columnas no está definido." –

Respuesta

39

Debe agregar la propiedad CSS3 word-wrap: break-word;.

+1

junto con ancho máximo? – George2

+2

@ George2 Esta propiedad css está diseñada para permitir que se rompa una palabra larga. Si resuelve tu problema, parece que a tu pregunta le faltaba un punto: tu texto no es solo largo, sino que también contiene palabras muy largas. –

+0

Copié la pregunta para dejar en claro que el texto contenía palabras largas, no solo texto largo. – culix

2

El viejo ancho html td funcionará en IE 8 para eso ... Pero desea ancho máximo, no ancho ... además del atributo html adicional necesario para cada celda.

+0

"Pero desea un ancho máximo, no un ancho": lo que necesito es simple, simplemente haga que el texto largo se ajuste automáticamente a la línea siguiente, de forma similar a la función de ajuste automático del bloc de notas. Alguna solución? – George2

+0

Sí, y la solución dada por alguien de arriba será suficiente. (Tengo que comprobar IE8, como supongo que es su objetivo) Obviamente, css3 no se aplicará en IE6, seguro. Mi solución funciona, pero no es flexible, necesitas ancho fijo en tds y probablemente también en la mesa. Lo cual no es divertido break-word que mencionó es la única manera si lo que intentas romper son palabras, las propiedades antiguas de css no romperán, por ejemplo, las cadenas clave de registro largas sin espacios. De todos modos, css más antiguo para envolver: http://www.w3schools.com/css/pr_text_white-space.asp http://www.quirksmode.org/css/whitespace.html (tabla de compatibilidad de navegadores) –

+0

Otra solución que he usado a veces es incrustada dentro de un div o span (con pantalla: bloquear o no, dependiendo de lo que se necesite), a la que aplico todas las propiedades ... puede ser el truco, en algunos casos. –

7

Puede colocar un div dentro de las celdas de su tabla.

Nada dentro de ese div estirará la celda de la tabla.

Funciona muy bien en IE8 y Chrome al menos.

+1

En el caso de palabras largas, agregar el ajuste de palabras: palabra de ruptura; será requerido. En el caso de tablas de ancho fijo, el contenido interno de la celda puede ser aún más ancho que el ancho máximo especificado en el div, pero el texto se ajustará según el ancho del div, lo que ocasionará una pérdida de espacio. Por lo tanto, su solución está limitada a tablas de ancho no fijo. –

1
<td nowrap="wrap" style="width:100px;"></td> 

Todos los navegadores ..

Desafortunadamente tienen que manejar cada célula de contenido para mantener a toda la anchura fija mesa. Hay un atributo de ancho para, pero no controla nada.

Cuestiones relacionadas