2014-12-12 25 views
7

Próbuję utworzyć rozwinięcie w dymku div, ale nie mogę wymyślić, jak sprawić, aby zawartość została rozwinięta za pomocą elementu div. Wysuszyłem kilka opcji przepełnienia, ale to nie zadziałało.tekst + div rozwiń po najechaniu myszą z css

Oto kod:

<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 */ 
} 

Oto jsfiddle

Czy ktoś może pomóc?

Wielkie dzięki.

Odpowiedz

17

Dodaj overflow: hidden do .grow.

Dodatkowo, zamiast używać znacznika <br />, należy zawinąć tekst w znaczniku <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

To jest poprawna odpowiedź :) – SW4

+3

Świetne, chciałbym móc uściskać! Dziękuję Ci! – Nicole

+0

Czy istnieje sposób na zachowanie animacji? –

2

tylko aktualizacja;

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

to złamie animację pomiędzy 2 stanach http://jsfiddle.net/h3w1wtmv/3/ –

+0

Czy istnieje jakiś sposób, aby zachować animację? –

1

Sprawdź z linku poniżej, czy to działa z wami.

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

Klasa .grow wymaga następujących dwóch linii, aby utworzyć płynne przejście również dla szerokości: 'transition: width 0.5s; -webkit-przejście: szerokość 0,5s; ' Zmieniłem również .grow: wysokość hover na" auto ", tak aby wyświetlała całą zawartą w nim treść. Zmiana atrybutu wysokości spowodowała, że ​​przejście wysokości stało się mniej płynne, więc przyspieszę to do 0,2 s, aby zrekompensować to [wersja demo] (https://jsfiddle.net/gknLstpt/31/). Ta "poprawka" w ogóle nie działa dobrze; czy mimo to utrzymuje się płynne przejścia, dynamicznie podnosząc wysokość obiektu? – plaidcorp

Powiązane problemy