2011-08-25 11 views
12

Tengo una tabla dinámica que genero después de obtener algunas entradas del usuario para presentar algunos datos tabulares. Necesito saber si hay distancia para asignar una altura fija para las celdas, incluso si algunas de ellas tienen algún contenido/texto. Me gustaría que todas las celdas tengan una altura de 30px independientemente de si tienen contenido o si están vacías.Células de tabla de altura fija independientemente del contenido de la celda

Este es el CSS que tengo:

table { 
    width: 90%; 
    height:100%; 

} 
    table th, table td { 
     border: 1px solid gray; 
     height:30px !important; 
     padding: 9px !important; 
     width: 16%; 
    } 

La tabla se genera por este código:

foreach ($this->rows as $i => $row) { 
      $tbody_tr = NHtml::el ('tr class="data-row-' . $i . '"'); 
      foreach ($this->fields as $field) { 
       $tbody_tr->add(NHtml::el ('td')->class($field['name'])->setHtml(@$row[$field['name']])); 
      } 

Pero cuando tengo una celda que tiene algo de texto, la altura de la celda se expande de todos modos. ¿Algunas ideas?

+0

¿Debería decir '... para asignar _WIDTH_ ..' fijo, o debería estar '_HEIGHT_'? –

+0

Corregido, lo siento – digitup

Respuesta

23

celdas de la tabla no se desbordan por lo que necesita para envolver el contenido en un div utilizar desbordamiento

He aquí un ejemplo: http://jsfiddle.net/avVQm/

HTML:

<table> 
<tr> 
    <td> 
    <div> 
    gf asfdg fsagfag fdsa gfdsg fdsg fds g fdg 
    </div> 
    </td> 
</tr> 
</table> 

CSS:

table { 
    width: 30px; 
    border: 1px solid black; 
} 

table td > div { 
    overflow: hidden; 
    height: 15px; 
} 

Su PHP:

foreach ((array)$this->fields as $field) { 
$wrapperdiv = NHtml::el ('div'); 
$tbody_tr->add($wrapperdiv); 
$wrapperdiv->add(NHtml::el ('td')->class($field['name'])->setHtml(@$row[$field['name']])); 
} 

Tenga en cuenta que no sé exactamente la sintaxis para el marco que utiliza, pero supongo que su php se verá algo así.

+0

: Gracias, las filas de la tabla se generan con el código PHP agregado. Por favor revisa el código de arriba. ¿Dónde puedo agregar el div? – digitup

+0

Por favor, mira mi actualización. No sé la sintaxis exacta de su marco php, pero creo que hice una buena conjetura :) – Bazzz

+0

Gracias, verificaré este enfoque. – digitup

-3

Intenta agregar "overflow: hidden" al css para th/td.

+0

Gracias Alexander, ya lo he intentado sin suerte. – digitup

+0

Mire aquí hay una pregunta similar con la solución: http://stackoverflow.com/questions/1554928/how-to-hide-table-row-overflow –

+0

gracias, pero igual cuando agrego el desbordamiento y sigo la solución mencionada en la tabla el ancho se expande al 100% en lugar del 90% para acomodar el espacio en blanco: nowrap. – digitup

Cuestiones relacionadas