2012-07-13 15 views
9

Ho un div con un paragrafo o più di testo al suo interno. Mi piacerebbe che mostrasse normalmente le prime parole, ma espandi per mostrare il testo completo al passaggio del mouse. Idealmente, mi piacerebbe farlo solo con CSS e senza duplicazione dei dati.Mostra normalmente il testo troncato, ma mostra il testo completo al volo stazionario

Questo è quello che ho provato: http://jsfiddle.net/SEgun/

Non voglio div a muoversi quando il testo si espande, solo per div 2 per espandere per visualizzare il testo completo copre div 3. È possibile? Post scriptum Non mi importa dei browser ritardati.

risposta

13

Il CSS sotto farà sì che il div a "coprire" tutto sotto di essa in modo da non spingere alcun contenuto verso il basso.

position: absolute; 
background-color:#FFF; 

Il colore di sfondo è importante per cui non è possibile vedere il materiale sottostante.

Per assicurarsi che tutto rimanga nello stesso posto, è possibile assegnare all'elemento successivo un margine superiore dello stesso valore dell'altezza della riga. Il segno + è il selettore adjacent sibling.

div { 
    line-height: 20px; 
} 
#data:hover+div { 
    margin-top:20px; 
} 

DEMO

+0

Ha detto che non vuole che i div si muovano, ma quando l'ho provato, div 3 è passato sopra il passaggio del mouse (in Firefox, IE8 e Opera). –

+0

@AlexW buona cattura! Ho aggiornato la mia soluzione per renderlo conto. – sachleen

+1

Funziona bene, grazie a tutti e due! – naveed

Problemi correlati