Home >Web Front-end >CSS Tutorial >Why Doesn't My CSS3 Transition Work When Using the Display Property?
This article addresses the issue of CSS transitions not functioning correctly when using the display property. It provides insights and alternative solutions to achieve the desired效果.
The goal is to create an effect where a hidden div smoothly fades in upon hovering over its parent element. However, attempts to implement this using CSS transitions have been unsuccessful, resulting only in the hidden div appearing without any transitions.
CSS transitions cannot be applied to elements with the display property set to none. This is because display: none removes the element entirely from the document flow, making it unavailable for any effects.
To achieve the desired fading effect, we can utilize the opacity property instead of display. By manipulating the opacity of the hidden div, we can gradually reveal it when hovered over.
Here is the updated CSS code:
#header #button:hover > .content { opacity: 1; height: 150px; padding: 8px; } #header #button .content { opacity:0; height: 0; padding: 0 8px; overflow: hidden; -webkit-transition: all .3s ease .15s; -moz-transition: all .3s ease .15s; -o-transition: all .3s ease .15s; -ms-transition: all .3s ease .15s; transition: all .3s ease .15s; }
In this code, the opacity of the hidden div is set to 0 initially, making it invisible. When the parent button is hovered over, the opacity gradually transitions to 1, revealing the div with a smooth fading effect.
By understanding the limitations of the display property and implementing an alternative solution using opacity, one can achieve the desired fade-in transition效果 for hidden elements upon hover.
The above is the detailed content of Why Doesn't My CSS3 Transition Work When Using the Display Property?. For more information, please follow other related articles on the PHP Chinese website!