Home >Web Front-end >CSS Tutorial >Can CSS Animations Work with Elements Set to `display: none`?

Can CSS Animations Work with Elements Set to `display: none`?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-30 20:53:16107browse

Can CSS Animations Work with Elements Set to `display: none`?

CSS Animation and Displaying Elements

You've attempted to use CSS animation with an element that initially has display: none. While this might seem like a straightforward approach to show and hide elements dynamically, CSS limitations prevent it.

The Problem with display: none

CSS Animations cannot handle transitions between display: none and display: block or between height: 0 and height: auto. You need to hardcode the height if possible, otherwise, using JavaScript would be necessary.

Setting Height

In situations where hardcoding height is not feasible, you can use overflow: hidden to conceal the element and set its height to 0. When you're ready to show it, set overflow back to visible and animate the height to its full extent.

Example Code

CSS:

#main-image {
  height: 0;
  overflow: hidden;
  background: red;
  animation: slide 1s ease 3.5s forwards;
}

@keyframes slide {
  from { height: 0; }
  to { height: 300px; }
}

HTML:

<div>

In this example, overflow: hidden ensures the element remains hidden as its height is animated from 0 to 300px.

Note: The CSS example uses vanilla CSS. If you're using Animate.css, you can replace the @keyframes rule with the corresponding Animate.css class.

This approach allows you to smoothly animate elements without relying on display: none or jQuery, providing smoother transitions and more precise timing control.

The above is the detailed content of Can CSS Animations Work with Elements Set to `display: none`?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn