Verlaufseffekt der CSS-Anzeigeeigenschaften
P粉608647033
2023-08-21 11:08:32
<p>Ich entwerfe derzeit ein CSS-„Super-Dropdown“ – im Grunde ein normales reines CSS-Dropdown, aber mit verschiedenen Arten von Inhalten darin. </p>
<p>Derzeit <strong> scheinen CSS 3-Übergangseffekte nicht auf das „display“-Attribut anzuwenden</strong>, das heißt, es gibt keine Möglichkeit zum Übergang von <code>display: none</ code> bis <code>display: block</code> </p>
<p>Gibt es im obigen Beispiel eine Möglichkeit, das Menü der zweiten Ebene „einblenden“ zu lassen, wenn jemand mit der Maus über das oberste Menüelement fährt? </p>
<p>Ich weiß, dass Sie Übergangseffekte für das Attribut <code>visibility:</code> verwenden können, aber ich weiß nicht, wie ich es effektiv nutzen kann. </p>
<p>Ich habe es auch mit der Höhe versucht, aber die Ergebnisse waren schrecklich. </p>
<p>Ich weiß auch, dass dies leicht mit JavaScript erreicht werden kann, aber ich wollte mich der Herausforderung stellen, nur CSS zu verwenden, aber ich habe das Gefühl, dass ich ein wenig überfordert bin. </p>
您需要通过其他方式隐藏元素以使其正常工作。
我通过将两个
<div>
都设置为绝对定位,并将隐藏的一个设置为opacity: 0
来实现效果。如果您将
display
属性从none
切换到block
,则其他元素的过渡效果将不会发生。为了解决这个问题,始终允许元素为
display: block
,但通过以下任何方式隐藏元素:height
设置为0
。opacity
设置为0
。overflow: hidden
的另一个元素的框架之外。可能还有更多解决方案,但如果将元素切换为
display: none
,则无法执行过渡。例如,您可能尝试类似于以下内容的操作:但这将不会起作用。根据我的经验,我发现这样做没有任何效果。
因此,您始终需要保持元素的
display: block
- 但您可以通过以下方式绕过此问题:您可以连接两个或更多的过渡效果,而
visibility
此时会很方便。