Meine Antwort bezieht sich nicht auf das statische Eltern-Kind-Layout, sondern auf Animationen.
Ich tat eine svg-Demo heute, und ich brauchte svg innerhalb von div sein (weil svg mit Elternteil div Breite und Höhe erstellt wird, um den Pfad um zu animieren), und dieses Elternteil div unsichtbar während svg-Pfad-Animation sein musste (und dann sollte dieses div zu animate opacity from 0 to 1
das ist der wichtigste Teil). Und weil parent div mit opacity: 0
meine svg verstecken wollte, stieß ich auf diesen Hack mit visibility
Option (Kind mit visibility: visible
kann innerhalb des Elternteils gesehen werden mit visibility: hidden
):
.main.invisible .test {
visibility: hidden;
}
.main.opacity-zero .test {
opacity: 0;
transition: opacity 0s !important;
}
.test { // parent div
transition: opacity 1s;
}
.test-svg { // child svg
visibility: visible;
}
Und dann, in js, entfernen Sie .invisible
Klasse mit Timeout-Funktion, Hinzufügen von .opacity-zero
Klasse, Layout auslösen mit etwas wie whatever.style.top;
und Entfernen .opacity-zero
Klasse.
var $main = $(".main");
setTimeout(function() {
$main.addClass('opacity-zero').removeClass("invisible");
$(".test-svg").hide();
$main.css("top");
$main.removeClass("opacity-zero");
}, 3000);
Prüfen Sie besser diese Demo http://codepen.io/suez/pen/54bbb2f09e8d7680da1af2faa29a0aef?editors=011