Ich weiß, das ist keine wirkliche Lösung für Ihre Frage, weil Sie danach fragen
Anzeige + Deckkraft
Mein Ansatz löst eine allgemeinere Frage, aber vielleicht war dies das Hintergrundproblem, das durch die Verwendung displayin Kombination mit gelöst werden sollte opacity.
Mein Wunsch war es, das Element aus dem Weg zu räumen, wenn es nicht sichtbar ist. Diese Lösung macht genau das: Sie bewegt das Element aus dem Weg und kann für den Übergang verwendet werden:
.child {
left: -2000px;
opacity: 0;
visibility: hidden;
transition: left 0s 0.8s, visibility 0s 0.8s, opacity 0.8s;
}
.parent:hover .child {
left: 0;
opacity: 1;
visibility: visible;
transition: left 0s, visibility 0s, opacity 0.8s;
}
Dieser Code enthält keine Browserpräfixe oder Abwärtskompatibilitäts-Hacks. Es zeigt nur das Konzept, wie das Element wegbewegt wird, da es nicht mehr benötigt wird.
Der interessante Teil sind die zwei unterschiedlichen Übergangsdefinitionen. Wenn sich der Mauszeiger über dem .parentElement befindet, muss das Element .childsofort platziert werden, und dann wird die Deckkraft geändert:
transition: left 0s, visibility 0s, opacity 0.8s;
Wenn es keinen Hover gibt oder der Mauszeiger vom Element wegbewegt wurde, muss gewartet werden, bis die Deckkraftänderung abgeschlossen ist, bevor das Element vom Bildschirm wegbewegt werden kann:
transition: left 0s 0.8s, visibility 0s 0.8s, opacity 0.8s;
Das Verschieben des Objekts ist eine praktikable Alternative in einem Fall, in dem die Einstellung display:nonedas Layout nicht beschädigen würde.
Ich hoffe, ich habe bei dieser Frage den Nagel auf den Kopf getroffen, obwohl ich sie nicht beantwortet habe.