css - CSS 显示属性的过渡

标签 css css-transitions

我目前正在设计一个 CSS“大型下拉”菜单 - 基本上是一个常规的纯 CSS 下拉菜单,但包含不同类型的内容。

目前,似乎 CSS 3 转换不适用于“显示”属性,也就是说,您不能从 display: none< 进行任何类型的转换display: block(或任何组合)。

当有人将鼠标悬停在顶级菜单项之一上时,是否有一种方法可以让上述示例中的二级菜单“淡入”?

我知道您可以在 visibility: 属性上使用转换,但我想不出一种有效使用它的方法。

我也试过使用高度,但失败得很惨。

我也知道使用 JavaScript 实现这一点很简单,但我想挑战自己只使用 CSS,我认为我做的有点短。

最佳答案

您可以连接两个或更多过渡,visibility 是这次派上用场的工具。

div {
  border: 1px solid #eee;
}
div > ul {
  visibility: hidden;
  opacity: 0;
  transition: visibility 0s, opacity 0.5s linear;
}
div:hover > ul {
  visibility: visible;
  opacity: 1;
}
<div>
  <ul>
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
  </ul>
</div>

(不要忘记 transition 属性的供应商前缀。)

更多详细信息在 this article 中.

关于css - CSS 显示属性的过渡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55870807/

相关文章:

javascript - 像 slider 一样滚动 Div

css - React - 使用样式渲染 <Link>

javascript - 使用在生成的 jpg 之上展平的 CSS3 滤镜拍摄图像快照

css - 过渡运行时居中的 div 看起来不稳定

ipad - 为什么应用 '-webkit-backface-visibility: hidden;' 可以修复 ios/ipad 5.1 上的负边距过渡问题?

用于一页 Bootstrap 设计的 JQuery/CSS 事件/动画。 (点击和滚动)

jquery - 如何选择另一个元素(e)的子元素(se),但不包括所选子元素(sse)的子元素之一?

html - 我的 &lt;footer&gt; 有问题

css - 如何在动态图像上显示高度过渡 - react css

html - 在文本上方和下方添加行过渡