2011-11-29 32 views
8

tengo el siguiente cuadro en mi HTML:¿Cómo hacer que el ancho de una columna se ajuste a su contenido en la tabla HTML?

<div style="max-width:700px;"> 
    <table border="1"> 
     <tr><td colSpan="2">this is a loooooooooooooooong text</td></tr> 
     <tr><td width="1px">a:</td><td >b</td></tr> 
     <tr><td width="1px">c:</td><td >d</td></tr> 
    </table> 
<div> 

Quiero que el primer ancho de columna en la segunda y tercera fila para adaptarse simplemente la longitud del contenido (por eso puse width="1px" allí). Mientras tanto, quiero que el ancho de la tabla solo se ajuste a la longitud del contenido más largo de la tabla (que es la primera fila) en lugar de abarcar el máximo ancho de su div límite.

Funciona en Firefox como se muestra a continuación.

Firefox display

Sin embargo, en el IE 9 no funciona como se espera, como se muestra.

IE 9 display

Me trataron de sustituir width="1px" con width="1%". Pero entonces el ancho de la tabla abarcará el ancho máximo del div principal.

¿Alguien sabe cómo solucionarlo en IE?

+0

Me funciona en IE9. – Will

+0

posible duplicado de [¿son posibles las celdas de la tabla de encogimiento para ajustar?] (Http://stackoverflow.com/questions/4582631/are-shrink-to-fit-table-cells-possible) –

Respuesta

13

Acabo de probar en mi IE9, y establecer el ancho para 1px funciona. Pero se muestra como se presentó arriba en modo de compatibilidad. ¿Has declarado tu doctype y todas las otras cosas divertidas?

Puede deberse a que está utilizando métodos más antiguos para mostrar la tabla. Usted podría intentar estilizar la tabla con bordes y así sucesivamente en CSS - tales como:

table, td, tr, th{ 
    border:1px solid #f0f; 
} 

.onepx{ 
    width:1px; 
} 



<div style="max-width:700px;"> 
    <table> 
    <tr><td colspan="2">this is a loooooooooooooooong text</td></tr> 
    <tr><td class="onepx">a:</td><td>b</td></tr> 
    <tr><td class="onepx">c:</td><td>d</td></tr> 
    </table> 
<div> 

y así sucesivamente - Estoy seguro de que usted consigue la idea. esto podría evitar que se muestre automágicamente en la vista de compatibilidad (si es el problema).

Y, por último, porque IE9 es tan estúpido, tendrá que desactivar la vista de compatibilidad (si está habilitada en la página), porque todas las páginas dentro del dominio se verán en la vista de compatibilidad.

+0

Gracias. Agregar la declaración del tipo de documento resolvió el problema en IE. – Bob

+0

Tengo una nueva situación ahora. No puedo desactivar la vista de compatibilidad en IE ya que otras partes de la página deben verse en la vista de compatibilidad. Entonces, ¿hay alguna manera de lograr el estilo como en Firefox sin desactivar la vista de compatibilidad en IE9? – Bob

+0

sí. asegúrese de que su código esté bien validado y bien estructurado. asegúrese de que su página no tenga errores en http://validator.w3.org/ – dan

2

Mencionó que ha intentado configurarlo al 1%, ¿configuró el otro al 99%?

<tr><td width="1%">a:</td><td width="99%">b</td></tr> 
<tr><td width="1%">c:</td><td width="99%">d</td></tr> 
+0

que no funcionará porque eso lo configurará al 99% de 700 píxeles. – dan

Cuestiones relacionadas