J'ai une animation CSS pour une div qui se glisse après un certain temps. Ce que je voudrais, c'est que quelques divs remplissent l'espace de la div animée qui se glisse à l'intérieur, ce qui poussera ensuite ces éléments vers le bas de la page.
Lorsque j'essaie de le faire, la première division qui se glisse à l'intérieur occupe toujours de l'espace, même si elle n'est pas visible. Si je change la div en display:none
le div ne se glisse pas du tout.
Comment faire pour qu'un div n'occupe pas d'espace tant qu'il n'est pas programmé pour entrer (en utilisant le CSS pour la programmation) ?
J'utilise Animate.css pour les animations.
Voici à quoi ressemble le code :
<div id="main-div" class="animated fadeInDownBig"><!-- Content --></div>
<div id="div1"><!-- Content --></div>
<div id="div2"><!-- Content --></div>
<div id="div3"><!-- Content --></div>
Comme le montre le code, je voudrais que la div principale soit cachée et que les autres div s'affichent d'abord. Ensuite, j'ai défini le délai suivant :
#main-div{
-moz-animation-delay: 3.5s;
-webkit-animation-delay: 3.5s;
-o-animation-delay: 3.5s;
animation-delay: 3.5s;
}
C'est à ce moment-là que je voudrais que la division principale pousse les autres divisions vers le bas au fur et à mesure qu'elle arrive.
Comment dois-je m'y prendre ?
Note : J'ai envisagé d'utiliser jQuery pour faire cela, mais je préfère utiliser strictement CSS car c'est plus lisse et le timing est un peu mieux contrôlé.
EDIT
J'ai essayé ce que Duopixel a suggéré, mais soit j'ai mal compris et je ne fais pas les choses correctement, soit cela ne fonctionne pas. Voici le code :
HTML
<div id="main-div" class="animated fadeInDownBig"><!-- Content --></div>
CSS
#main-image{
height: 0;
overflow: hidden;
-moz-animation-delay: 3.5s;
-webkit-animation-delay: 3.5s;
-o-animation-delay: 3.5s;
animation-delay: 3.5s;
}
#main-image.fadeInDownBig{
height: 375px;
}