2014-12-12 26 views
7

Sto provando a creare un'espansione sul div hover, ma non riesco a capire come ampliare il contenuto con il div. Ho asciugato alcune opzioni di overflow, ma non ha funzionato.text + div expand on hover with css

Ecco il codice:

<div class="grow" style="background-color: #2a75a9;"> <h2>Title</h2> </br> 
    Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature</div> 

.grow { 
    padding: 5px 5px 5px 5px; 
    border-radius:10px; 
    height: 50px; 
    width: 22%; 
    margin: 5px 1% 5px 1%; 
    float: left; 
    position: relative; 
    transition:height 0.5s; 
    -webkit-transition:height 0.5s; 
    text-align: center; 

} 
.grow:hover { 
    height: 115px; /* This is the height on hover */ 
} 

Ecco la jsfiddle

qualcuno può aiutarmi?

Molte grazie.

risposta

17

Aggiungi overflow: hidden-.grow.

Inoltre, anziché utilizzare il tag <br />, racchiudere il testo in un tag <p>.

.grow { 
 
    padding: 5px 5px 5px 5px; 
 
    border-radius: 10px; 
 
    height: 49px; 
 
    width: 22%; 
 
    margin: 5px 1% 5px 1%; 
 
    float: left; 
 
    position: relative; 
 
    transition: height 0.5s; 
 
    -webkit-transition: height 0.5s; 
 
    text-align: center; 
 
    overflow: hidden; 
 
} 
 
.grow:hover { 
 
    height: 145px; 
 
}
<div class="grow" style="background-color: #2a75a9;"> 
 
    <h2>Title</h2> 
 
    <p>Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature</p> 
 
</div>

+4

Questa è la risposta corretta :) – SW4

+3

Brillante, vorrei poterti dare un abbraccio natalizio! Grazie! – Nicole

+0

C'è un modo per mantenere l'animazione? –

2

solo aggiornamento;

.grow:hover { 
    height: auto; /* This is the height on hover */ 
} 
+2

questo si romperà l'animazione tra i 2 stati http://jsfiddle.net/h3w1wtmv/3/~~V~~3rd –

+0

C'è un modo per preservare l'animazione? –

1

Verificare con il link qui sotto se funziona con te.

https://jsfiddle.net/gknLstpt/9/

.grow { 
    padding: 5px 5px 5px 5px; 
    border-radius: 10px; 
    height: 49px; 
    width: 15%; 
    margin: 5px 1% 5px 1%; 
    float: left; 
    position: relative; 
    transition: height 0.5s; 
    -webkit-transition: height 0.5s; 
    text-align: center; 
    overflow: hidden; 
} 
.grow:hover { 
    height: 145px; 
    width: 145px; 
} 
+0

La classe .grow richiede le seguenti due righe per creare una transizione uniforme anche per la larghezza: 'transizione: larghezza 0,5 s; -webkit-transition: larghezza 0.5s; ' Ho anche cambiato .grow: altezza del passaggio del mouse su" auto "in modo che mostri tutto il contenuto che contiene. Cambiare l'attributo altezza ha reso meno fluida la transizione dell'altezza, quindi la velocizzo fino a 0,2 secondi per compensare questa [demo] (https://jsfiddle.net/gknLstpt/31/). Questa "correzione" non funziona affatto; esiste comunque il mantenimento di transizioni omogenee mentre si gestisce dinamicamente l'altezza dell'oggetto? – plaidcorp