2010-05-27 30 views
44

en primer lugar, no soy muy bueno en diseño web.Tabla con ancho de 100% con columnas de igual tamaño. (un nombre de variable)

Tengo que crear dinámicamente una tabla con un número variable de columnas, determinado en tiempo de ejecución.

¿Alguien puede decirme si es posible tener una tabla html con columnas del mismo tamaño que estén completamente estiradas?

¿Alguna pista?

+1

La respuesta en la parte inferior (con muchos votos) debe marcarse como respuesta aceptada, ya que es más correcta y resuelve universalmente el problema. – Micros

Respuesta

40
<table width="400px"> 
    <tr> 
    <td width="100px"></td> 
    <td width="100px"></td> 
    <td width="100px"></td> 
    <td width="100px"></td> 
    </tr> 
</table> 

Por número variable de columnas usar%

<table width="100%"> 
    <tr> 
    <td width="(100/x)%"></td> 
    </tr> 
</table> 

donde 'x' es el número de columnas

+3

+1 para el segundo enfoque. Pero 400 ¿qué, pies? ¿Pulgadas? ¿Centímetros? Pixel? Usa unidades :) – ANeves

+2

Ese es exactamente el punto. El primer ejemplo es indiferente a la unidad utilizada. – EdMelo

+1

¿Esto tiene en cuenta las fronteras de tr y tds? Supongo que no. – Ninad

-4
  1. averiguar cuántas columnas que desea
  2. trabajar en lo porcentaje de ancho cada columna necesita: floor(100/n)
  3. Aplicar anchos de porcentaje al celdas de encabezado cuando las da salida
  4. ???
  5. GANANCIA !!
+0

Solo quería decir que obtuve totalmente la referencia :) –

7

único que tiene que hacer:

HTML:

<table id="my-table"><tr> 
<td> CELL 1 With a lot of text in it</td> 
<td> CELL 2 </td> 
<td> CELL 3 </td> 
<td> CELL 4 With a lot of text in it </td> 
<td> CELL 5 </td> 
</tr></table> 

CSS:

#my-table{width:100%;} /*or whatever width you want*/ 
#my-table td{width:2000px;} /*something big*/ 
+1

esto no funciona para mí. ¿Puedes dar un ejemplo de trabajo? –

+0

http://jsfiddle.net/aroykos/mVX93/ – aroykos

+0

funciona ahora - He intentado el enfoque 'td {ancho: 100%}' antes y eso no funcionó, pero '2000px' funciona bien. –

99

Si usted no sabe el número de columnas que va a tener, la declaración

table-layout: fixed

junto con no establecer ninguna ancho de las columnas, implicaría que los navegadores dividen el ancho total uniformemente - no importa qué.

Ese también puede ser el problema con este enfoque, si utiliza esto, también debe considerar cómo se debe manejar el desbordamiento.

+0

Me gustaría tomar este enfoque para una tabla de pantalla completa sin desbordamiento. ¿Cuántas columnas crearía? ¿Podrías por favor configurar una demostración para entenderla mejor? – ProgramCpp

+2

http://jsfiddle.net/5babcvg4/ Crea una tabla con tantas columnas como desee, luego agregue la declaración a la tabla. – orszaczky

+5

Tenga en cuenta que debe establecerse el ancho de la tabla (por ejemplo, 'ancho: 100%;'). –

Cuestiones relacionadas