Diciamo che le mie colonne in una tabella sono id
, name
, description
e phone
. La colonna description
è di 1-255 caratteri, ma l'ID ha un massimo di 3 caratteri.Come posso utilizzare i puntini di sospensione in una tabella di larghezza del fluido senza rendere ogni colonna della stessa dimensione?
Mi piacerebbe che le colonne fossero dimensionate correttamente piuttosto che ogni colonna avesse le stesse dimensioni. E mi piacerebbe che la colonna description
esagerasse con i puntini di sospensione quando la finestra è troppo piccola per adattarsi al contenuto nella sua interezza.
table-layout:fixed;
è il modo standard per eseguire text-overflow: ellipsis;
ma ridimensiona tutte le colonne alla stessa dimensione. Preferirei mantenere le larghezze auto
anziché fisse.
Potete essere d'aiuto?
Ecco la mia jsFiddle: http://jsfiddle.net/RQhkk/1/
Ecco uno screenshot di quello che ho a che fare con:
Notate come Table 1
rende tutte le colonne delle stesse dimensioni? È terribile.
Nota come Table 2
dimensiona le colonne in base al contenuto? Quello è buono. Tranne quando il contenuto è troppo lungo: Table 3
. Quindi non va bene. In tal caso mi piacerebbe che traboccasse su un'ellissi.
Ed ecco la mia tabella di codice HTML e CSS:
<div id="t1">
<table>
<thead>
<tr>
<th>id</th>
<th>name</th>
<th class="ellipsis">description</th>
<th>phone</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>alpha</td>
<td class="ellipsis">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</td>
<td>555-555-5555</td>
</tr>
<tr>
<td>2</td>
<td>beta</td>
<td class="ellipsis">Sed et nulla neque.</td>
<td>555-555-5555</td>
</tr>
<tr>
<td>3</td>
<td>gamma</td>
<td class="ellipsis">Morbi imperdiet neque ut lorem rhoncus fermentum.</td>
<td>555-555-5555</td>
</tr>
</tbody>
</table>
</div>
<style>
#t1 table {
table-layout:fixed;
width:100%;
}
#t1 td {
white-space: nowrap;
}
#t1 td.ellipsis {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
word-break: break-all;
word-wrap: break-word;
}
</style>
Se rimuovo il la larghezza delle colonne sono ciò che ci si aspetta - dimensionata per il contenuto. Sfortunatamente non riesco a far funzionare i puntini di sospensione senza il layout fisso. Dove sto andando male?
Bello! Questo aiuta. Tuttavia, le altre colonne più piccole occupano molto più spazio bianco del necessario. Dai un'occhiata al fiddle aggiornato: http://jsfiddle.net/RQhkk/3/ Avviso La Tabella 3 ora ha la larghezza massima nella classe ellissi. Ma le altre colonne sono molto più grandi di quanto debbano essere. Eventuali suggerimenti? Mi piacerebbe che le colonne assomiglino molto di più alla tabella 2, ma con l'elisis, se necessario. – Ryan