2017-07-11 1 views
0

Je voudrais transform la height de mon .bar-3px en vol stationnaire .wrapper. Je sais que je dois utiliser transition et transform, mais je n'ai aucune idée de comment transform mon enfant div en passant son père. En ce moment, je transform juste mon parent div (c'est clair pourquoi). Comment transformheight de mon enfant en planant mon parent div (devrait être une barre à venir haut/bas sur le bas de)? Notez que le div parent ne devrait pas transformer ses dimensions, juste l'enfant!Transformer la hauteur de l'enfant div lorsque le vol stationnaire parent div

.wrapper { 
 
    display: flex; 
 
    flex-direction: column; 
 
    justify-content: flex-end; 
 
    width: 200px; 
 
    height: 100px; 
 
    background-color: lightgreen; 
 
    transition: all 1s ease-in-out; 
 
} 
 

 
.wrapper:hover { 
 
    /*ON HOVER WRAPPER TRANSFORM HEIGHT OF BAR TO 3px*/ 
 
    transform: scale(2); 
 
    cursor: pointer; 
 
} 
 

 
.bar { 
 
    width: 100%; 
 
    height: 0px; 
 
    background-color: blue; 
 
} 
 

 
.bar:hover {}
<div class="wrapper"> 
 
    <div class="bar"></div> 
 
</div>

Répondre

3

Utilisez le sélecteur d'enfant .wrapper:hover>.bar:

.wrapper { 
 
    display: flex; 
 
    flex-direction: column; 
 
    justify-content: flex-end; 
 
    width: 200px; 
 
    height: 100px; 
 
    background-color: lightgreen; 
 
    transition: all 1s ease-in-out; 
 
} 
 

 
.wrapper:hover { 
 
    cursor: pointer; 
 
} 
 

 
.bar { 
 
    width: 100%; 
 
    height: 0px; 
 
    background-color: blue; 
 
    transition: height 200ms ease-in-out; 
 
} 
 

 
.wrapper:hover>.bar { 
 
    height: 3px; 
 
}
<div class="wrapper"> 
 
    <div class="bar"></div> 
 
</div>

+0

Nice, fonctionne grâce. J'ai édité votre réponse, parce que la div parent ne devrait pas se transformer, juste la division enfant. J'ai donc supprimé la transformation du fichier .wrapper: hover. Je vais marquer comme une réponse correcte, acclamations compagnon. – MrBuggy

+0

Bienvenue. Vous devez supprimer le code de transformation '.wrapper' de la question. –

2

Utilisez ce sélecteur CSS > de le faire,

.wrapper { 
 
    display: flex; 
 
    flex-direction: column; 
 
    justify-content: flex-end; 
 
    width: 200px; 
 
    height: 100px; 
 
    background-color: lightgreen; 
 
    transition: all 1s ease-in-out; 
 
} 
 

 

 
/*.wrapper:hover { 
 
    transform: scale(2); 
 
    cursor: pointer; 
 
}*/ 
 

 
.bar { 
 
    width: 100%; 
 
    height: 0px; 
 
    background-color: blue; 
 
    transition: 0.6s ease; 
 
} 
 

 
.wrapper:hover > .bar { 
 
    height: 10px; 
 
}
<div class="wrapper"> 
 
    <div class="bar"></div> 
 
</div>

+0

@MrBuggy Vous pouvez utiliser ce sélecteur de css> comme indiqué pour sélectionner l'élément enfant ou même supprimer ce signe> et garder juste cet espace blanc entre eux pour sélectionner l'élément enfant ie .wrapper: hover .bar ou .wrapper: hover>. bar – frnt