50
Ho alcune tabelle html in cui i dati testuali sono troppo grandi per adattarsi. Quindi, espande la cella verticalmente per adattarsi a questo. Quindi ora le righe con overflow sono due volte più alte delle righe con quantità di dati minori. Questo è inaccettabile. Come posso forzare la tabella ad avere la stessa altezza di riga di 1em
?Come nascondere l'overflow della riga tabella?
Ecco alcuni markup che riproducono il problema. La tabella dovrebbe essere solo l'altezza di una riga, con il testo traboccante nascosto.
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<style type="text/css">
table { width:250px; }
table tr { height:1em; overflow:hidden; }
</style>
</head>
<body>
<table border="1">
<tr>
<td>This is a test.</td>
<td>Do you see what I mean?</td>
<td>I hate this overflow.</td>
</tr>
</table>
</body>
</html>
Qualche ragione particolare per cui stai usando un '
Sto usando una 'table' perché sto visualizzando i dati tabulari! –
risposta
necessario specificare due attributi,
table-layout:fixed
sutable
ewhite-space:nowrap;
sulle cellule. È inoltre necessario spostare iloverflow:hidden;
alle cellule troppoHere's a Demo. Testato in Firefox 3.5.3 e IE 7
fonte
2009-10-12 14:58:49
Unico aspetto negativo (sembra), è che le larghezze della cella della tabella sono identiche. Un modo per aggirare questo? –
Non per quanto ne so - credo che sulla parte browser sia stata fatta un'ipotesi che, dal momento che non sono definite singole celle, la larghezza del tavolo viene divisa in modo uniforme tra il numero di celle. L'unico modo possibile per aggirare ciò che posso pensare sarebbe quello di calcolare una larghezza per ogni cella in base al numero di caratteri che ciascuno contiene (rispetto al numero totale di caratteri per tutte le celle), server o lato client (il primo probabilmente è la scelta più performante). Questo suona eccessivo? –
dei caratteri totali in tutte le celle della riga in questione è ciò che intendevo nel mio ultimo commento :) –
Basta definire larghezza della tabella e la larghezza di ciascuna cella della tabella
qualcosa come
Funziona come un fascino: o)
fonte
2009-11-05 15:12:03 Popara
Ma la larghezza fluttuerà in base alla quantità di dati da visualizzare al suo interno. Non è che sto usando font monospaced qui !! –
In generale, se si utilizza
white-space: nowrap;
è probabilmente perché si sa quali colonne contengono contenuto che avvolge (o allunga la cella). Per tali colonne, in genere avvolgo il contenuto della cella in unspan
con uno specifico attributoclass
e applica uno specificowidth
.Esempio:
HTML:
CSS:
fonte
2011-03-04 16:15:16 user645077
Funziona davvero bene .. – Ben
Grazie, questo è stato molto utile. –
Un approccio migliore dell'impostazione dell'intero tavolo. –
Nella maggior parte dei browser moderni, è ora possibile specificare:
Poi, se si applicano gli stili dai posti di cui sopra, come segue:
Il risultato ti dà troppo pieno ben nascosta in tutto il tavolo. Funziona negli ultimi Chrome, Safari, Firefox e IE. Non ho testato in IE prima di 9 - ma la mia ipotesi è che funzionerà fino a 7, e si potrebbe anche avere la fortuna di vedere 5,5 o 6 supporto. ;)
fonte
2012-06-13 21:15:21
Se javascript è accettato come risposta, ho creato un plugin jQuery per risolvere questo problema (per ulteriori informazioni sul problema, vedere CSS: Truncate table cells, but fit as much as possible).
usare il plugin è sufficiente digitare
Plugin:https://github.com/marcogrcr/jquery-tableoverflow
completa esempio:http://jsfiddle.net/Cw7TD/3/embedded/result/
fonte
2013-05-13 14:14:36 Marco
Here's qualcosa che ho provato. Fondamentalmente, metto il contenuto "flessibile" (il td che contiene linee troppo lunghe) in un contenitore div alto una riga, con overflow nascosto. Poi lascio che il testo si avvolga nell'invisibile. Si ottengono delle interruzioni a crepacci, però, non solo un taglio netto.
fonte
2014-02-27 08:52:53
Devo aggiungere che il vantaggio qui è che non ho bisogno di impostare larghezze assolute delle colonne. Il design è fluido. –
Il problema qui è: come fai a sapere a quale cella assegnare quale classe? A meno che non si digiti manualmente ogni pagina di cui avrai mai bisogno, in stile Web 1.0, questa non è una soluzione completa. –
avvolgere il tavolo in una div con class = "contenitore"
poi
risultato
fonte
2018-03-03 08:57:13
Problemi correlati