2010-10-25 7 views
12

Sto ricostruendo un menu a discesa simile a una casella <select> utilizzando div e jquery. Il div contenente gli elementi a discesa dovrebbe avere una larghezza minima, ma non la larghezza massima in quanto dovrebbe crescere insieme all'elemento più largo nell'elenco (quindi se ho un oggetto molto lungo come '[Questo è l'oggetto più lungo all'interno del contenitore]', l'intero contenitore dovrebbe essere largo come questoIl whiterap dello spazio bianco CSS non aumenta la larghezza?

Ora ho quasi ottenuto quello che voglio, utilizzando white-space:nowrap per ogni elemento all'interno del contenitore, in modo che il testo di un elemento non continui su una nuova riga. usando è il testo che scorre fuori dalla scatola usando, invece di lasciare che la scatola cresca lungo il testo.Non riesco a capire come risolvere questo problema.Ho già provato text-overflow:ellipsis ma questo sembra nascondere solo il testo straripato e l'aggiunta di tre punti (...) alla fine

Quindi ecco il mio problema in poche parole: come posso far crescere un div insieme al testo al suo interno, quando su di esso viene applicato white-space:nowrap invece di lasciare che il testo ne esca? Non voglio nascondere il testo utilizzando overflow:hidden, Voglio mostrare l'intera stringa ..

Grazie in anticipo!

risposta

19

Le larghezze degli elementi di blocco non dipendono dal loro contenuto nel normale modello di layout statico CSS. È possibile ottenere ‘shrink-to-fit’ comportamento come parte di altre proprietà di layout:

  • float: left
  • position: absolute
  • display: inline-block
  • tavolo

assumendo nessun esplicito width è impostato.

+0

Grazie per la risposta. Il problema è che il contenitore dell'elemento è già impostato per "rimpicciolire", ecco perché non riesco a trovare una soluzione al mio problema. Devo trovare un modo per espandere l'elemento div quando white-space: nowrap fa il testo scorre fuori dalla scatola, altrimenti non sembra funzionare perché il contenitore dell'elemento si restringe troppo e il testo straripato sarà nascosto. – carlo

+1

Quale metodo stai usando per ottenere un rimpicciolimento? Esempio non funzionante? – bobince

+0

Utilità al punto. Upvoted. – tmslnz

1

Ho avuto un problema simile, è stato risolto specificando il valore di riempimento in px anziché in percentuale.

+1

È improbabile che questa sia una soluzione deterministica del problema dell'OP e di tutti i problemi simili. Potresti pubblicare del codice che lo dimostri? Questo sarebbe stato meglio come commento. – 8bitjunkie

+0

Se un elemento ha larghezze o altezze percentuali e le larghezze/altezze dei genitori dipendono dalla larghezza/altezza dei loro figli, questo può effettivamente essere la causa di strani errori di spazi bianchi. – Sumurai8

+0

@MaxMommersteeg Non vedo come questa risposta rientri in quella categoria. – Sumurai8

1

Esiste un limite di larghezza massima in uno degli elementi principali della selezione?

Ciò impedirebbe il funzionamento dello spazio bianco. display: la tabella sovrascrive una larghezza massima se ne viene comunque impostata una.

+0

Sì, quello era il mio problema. – KthProg