2013-06-01 10 views
14

Sto cercando di fare quanto segue, avendo un <div> di certa larghezza, diciamo 30% e di 1 riga di testo, tuttavia voglio mostrare ... se il testo è troppo lungo, anche la larghezza del cambierà , poiché è un design reattivo, quindi ... dovrebbe essere regolato di conseguenza. Ma se una persona si libra sopra quella <div>, dovrebbe estendere la sua larghezza (sarà posizionata in modo assoluto, quindi è consentito uscire da determinati bordi) e mostrare tutto il testo, sulla stessa riga.Aggiungi automaticamente "..." se il testo estende una certa larghezza, ma lo mostra al passaggio del mouse?

Esempio:

This is text that fits 


This is text that doesn't fit inside ... 


This is text that doesn't fit inside, but is visible on hover. 

Non so se può essere fatto con puro HTML e CSS e il browser opera croce, forse un po 'troppo pieno nascosto backup? o JQuery, se non può essere raggiunto con altro.

risposta

27

Questo è possibile con pure CSS:

#test { 
    width: 50px; 
    text-overflow: ellipsis; 
    white-space: nowrap; 
    overflow: hidden; 
} 

#test:hover { 
    overflow: visible; 
} 

http://jsfiddle.net/qyNUG/

+0

wow, così semplice, non sapeva di esistenza di testo troppo pieno, grazie! – Ilja

+0

Ciao, ho notato una cosa interessante, se si imposta un colore di sfondo su #text div, non funziona su hover http://jsfiddle.net/qyNUG/3/ qualche idea su come risolverlo? anche provato a impostarlo su! importante, non ha funzionato – Ilja

+0

well nvm, capito http://jsfiddle.net/qyNUG/4/ – Ilja

5

Questa è una versione css3 che si basa su una larghezza di pixel. Se avessi un contenitore di una certa dimensione in cui il testo dovesse funzionare, potresti usare width: 100%; lavorare al suo interno.

jsfiddle

<p>This is text that doesn't fit inside, but is visible on hover.</p> 


p { 
    display: inline-block; 
    max-width: 200px; 
    overflow: hidden; 
    text-overflow: ellipsis; 
    white-space: nowrap; 
} 
p:hover { 
    max-width: none; 
} 
+0

Il motivo per cui utilizzo max-width è così che posso avere una transizione sulla rivelazione di il testo, come ad esempio http://jsfiddle.net/jamestoone/RPgaN/4/ – 2ne

+0

buona idea, ma perché "max-larghezza"? Non funzionerebbe solo la larghezza? – georg

+0

In questo esempio è possibile utilizzare la larghezza, ma ritengo che la larghezza massima sia più adatta allo scopo in quanto un elemento a cui viene applicata una larghezza massima non sarà mai più largo del valore specificato. – 2ne

Problemi correlati