Ver Mensaje Individual
  #10 (permalink)  
Antiguo 30/07/2011, 20:39
Avatar de emprear
emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Tabla invisible

@eliza_ralves:

No quiero alejarme del objetivo que planteas en el post.
Como me quedé algo curioso, estuve investigando y encontre varias aplicaciones (la mayoría basadas en jQuery) para crear gráficos a partir de datos en una tabla, no tenía idea de tal cosa, pero las demos que vi me parecieron espectaculares, ya les voy a sacar el jugo.

No sé cual usas vos, pero de las que analicé, cualquier modificación que le hagas a la tabla via css o via atributos, se refleja en el gráfico, y obviamente la tabla está siempre visible, (visibility:hidden o display:none eliminan los datos de los gráficos).
Así que encontré 2 soluciones, que puede llegar a resultar.

Para mi ejemplo trabajé en particular con esta

http://dwpe.googlecode.com/files/dwp...lic-latest.zip

descomprimila y en la carpeta /charting vas a ver un un index.html.
Sobre ese archivo hice estas modificaciones

Solución uno:
un poco mas complicada, pero todo depende de como tengas el resto de tu estructurada tu página

Código HTML:
Ver original
  1. <div style="width: 520px; height: 280px; position: absolute; top: 0px; left: 0px; z-index: 100; background-color: #FFF;">Detrás de esta capa esta la tabla-gráfico</div>
  2. <div style="width: 100%; height: auto; position: absolute; top: 0px; left: 0px; z-index: 1;">
  3.     <caption>2009 Employee Sales by Department</caption>
  4.     <thead>
  5.         <tr>
  6.             <td></td>
  7.             <th scope="col">food</th>
  8.             <th scope="col">auto</th>
  9.             <th scope="col">household</th>
  10.             <th scope="col">furniture</th>
  11.             <th scope="col">kitchen</th>
  12.             <th scope="col">bath</th>
  13.         </tr>
  14.     </thead>
  15.     <tbody>
  16.         <tr>
  17.             <th scope="row">Mary</th>
  18.             <td>190</td>
  19.             <td>160</td>
  20.             <td>40</td>
  21.             <td>120</td>
  22.             <td>30</td>
  23.             <td>70</td>
  24.         </tr>
  25.         <tr>
  26.             <th scope="row">Tom</th>
  27.             <td>3</td>
  28.             <td>40</td>
  29.             <td>30</td>
  30.             <td>45</td>
  31.             <td>35</td>
  32.             <td>49</td>
  33.         </tr>
  34.         <tr>
  35.             <th scope="row">Brad</th>
  36.             <td>10</td>
  37.             <td>180</td>
  38.             <td>10</td>
  39.             <td>85</td>
  40.             <td>25</td>
  41.             <td>79</td>
  42.         </tr>
  43.         <tr>
  44.             <th scope="row">Kate</th>
  45.             <td>40</td>
  46.             <td>80</td>
  47.             <td>90</td>
  48.             <td>25</td>
  49.             <td>15</td>
  50.             <td>119</td>
  51.         </tr>      
  52.     </tbody>
  53. </table>   
  54. </div>

es decir, encerré la tabla en un div con position: absolute, y cree otro div con la misma ubicación pero con un z-index mayor. Con eso se oculta la tabla y los graficos no pierden funcionalidad. sólo sería cosa de aprovechar esa capa en primer plano para poner algún otro contenido de tu página.


Solución 2:

Mucho mas sencillo, no hace falta ningun div, simplemente un margen supeior negativo a la tabla


Código HTML:
Ver original
  1. <table style="margin-top: -280px">
  2.     <caption>2009 Employee Sales by Department</caption>
  3.     <thead>
  4.         <tr>
  5.             <td></td>
  6.             <th scope="col">food</th>
  7.             <th scope="col">auto</th>
  8.             <th scope="col">household</th>
  9.             <th scope="col">furniture</th>
  10.             <th scope="col">kitchen</th>
  11.             <th scope="col">bath</th>
  12.         </tr>
  13.     </thead>
  14.     <tbody>
  15.         <tr>
  16.             <th scope="row">Mary</th>
  17.             <td>190</td>
  18.             <td>160</td>
  19.             <td>40</td>
  20.             <td>120</td>
  21.             <td>30</td>
  22.             <td>70</td>
  23.         </tr>
  24.         <tr>
  25.             <th scope="row">Tom</th>
  26.             <td>3</td>
  27.             <td>40</td>
  28.             <td>30</td>
  29.             <td>45</td>
  30.             <td>35</td>
  31.             <td>49</td>
  32.         </tr>
  33.         <tr>
  34.             <th scope="row">Brad</th>
  35.             <td>10</td>
  36.             <td>180</td>
  37.             <td>10</td>
  38.             <td>85</td>
  39.             <td>25</td>
  40.             <td>79</td>
  41.         </tr>
  42.         <tr>
  43.             <th scope="row">Kate</th>
  44.             <td>40</td>
  45.             <td>80</td>
  46.             <td>90</td>
  47.             <td>25</td>
  48.             <td>15</td>
  49.             <td>119</td>
  50.         </tr>      
  51.     </tbody>

Por supuesto que esta es solo una variante, no analicé en detalle las demas scripts que encontré para esto, quizás alguna no necesite de la tabla visible.

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.