2011-08-25 11 views
12

Ho una tabella dinamica che viene generata dopo aver ricevuto alcuni input dall'utente per presentare alcuni dati tabulari. Ho bisogno di sapere se c'è via per assegnare un'altezza fissa alle celle anche se alcune di esse hanno del contenuto/testo. Vorrei che tutte le celle avessero un'altezza di 30px indipendentemente dal fatto che avessero contenuto o se fossero vuote.Le celle di tabella hanno un'altezza fissa indipendentemente dal contenuto della cella

Questo è il CSS che ho:

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

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

La tabella è generata da questo codice:

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']])); 
      } 

Ma quando ho una cellula che ha un testo, l'altezza della cella si espande in ogni caso. Qualche idea?

+0

In caso affermativo '... per assegnare fisso _WIDTH_ ..', o dovrebbe essersi seduto '_HEIGHT_'? –

+0

corretto, spiacente – digitup

risposta

23

Le celle di tabella non traboccano quindi è necessario avvolgere il contenuto in un div per usare troppo pieno

Ecco un esempio: 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; 
} 

Il tuo 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']])); 
} 

Nota che non conosco esattamente la sintassi per il framework che usi, ma immagino che il tuo php assomiglierà a questo.

+0

: Grazie, le righe della tabella sono generate dal codice PHP aggiunto. Si prega di controllare il codice sopra. Dove posso aggiungere il div? – digitup

+0

Si prega di consultare il mio aggiornamento. Non conosco la sintassi esatta del tuo framework php ma penso di aver fatto una giusta ipotesi :) – Bazzz

+0

Grazie, controllerò questo approccio. – digitup

-3

Prova ad aggiungere "overflow: hidden" al css per th/td.

+0

Grazie Alessandro, ci ho già provato senza fortuna. – digitup

+0

Guarda qui c'è una domanda simile con la soluzione: http://stackoverflow.com/questions/1554928/how-to-hide-table-row-overflow –

+0

grazie ma ancora quando aggiungo l'overflow e seguo la soluzione menzionata nella tabella la larghezza si espande al 100% anziché al 90% per adattarsi allo spazio bianco: nowrap. – digitup

Problemi correlati