【发布时间】:2015-03-05 09:09:21
【问题描述】:
我正在构建一个可以淡入淡出下拉子菜单的导航。因为我想用纯 CSS 构建它,所以我尝试使用过渡。但是无论我做什么,它都不起作用,尽管它似乎是正确的方法。
我将子列表的隐藏正常版本定义为无显示和不透明度 0,告诉它使用过渡。然后,在它的父级悬停时,它应该是 display-block'd 并且应该转换不透明度。
问题出在哪里?
CSS:
#nav-main>ul>li>ul {
display: none;
opacity: 0;
position: absolute;
top: 2rem;
background-color: #fef1a3;
margin: 0;
padding: 0.25rem 0;
text-align: center;
list-style: none;
box-shadow: 0 0 3px rgba(0, 0, 0, 0.25);
-o-transition: all 0.5s linear;
-moz-transition: all 0.5s linear;
-khtml-transition: all 0.5s linear;
-webkit-transition: all 0.5s linear;
-ms-transition: all 0.5s linear;
transition: all 0.5s linear
}
#nav-main>ul>li:hover>ul {
display: block;
opacity: 1
}
HTML:
<nav id="nav-main">
<ul>
<li>
<a href="#">Link 1</a>
<ul>
<li>
<a href="#">Link 1.1</a>
</li>
</ul>
</li>
</ul>
</nav>
供您参考,这是一个小提琴(不要介意转换“全部”而不是“不透明”的调用,两者都尝试了:-)):
https://jsfiddle.net/hzhnqx1r/
目前在 Firefox 和 Safari 中尝试过。两者都有同样的问题。
感谢您的帮助!
【问题讨论】:
标签: css css-transitions