【发布时间】:2018-01-20 12:30:04
【问题描述】:
我正在使用这个页面的代码:
现在,我的 CSS 看起来像:
.subs {
visibility: hidden;
opacity: 0;
transform: translateY(-2em);
z-index: -1;
transition: all 0.3s ease-in-out 0s, visibility 0s linear 0.3s, z-index 0s linear 0.01s;
width: auto;
float: left;
position: absolute;
text-align: left;
border: 2px solid #66ec95;
background: #f4f7f5;
border-radius: 0 5px 5px 5px;
margin-top: -10px;
margin-left: -10px;
}
/* SELECTORS */
#nav li:hover > .subs { /* with this seletor, only the last property is working */
visibility: visible;
opacity: 1;
z-index: 1;
transform: translateY(0%);
transition-delay: 0s, 0s, 0.3s;
margin-top: 10px; /* just for test, only this is working */
}
#nav li :hover + .subs { /* this time, the animation are working but other problems occured (see above) */
visibility: visible;
opacity: 1;
z-index: 1;
transform: translateY(0%);
transition-delay: 0s, 0s, 0.3s;
}
我的 HTML:
<ul id="nav">
<li aria-haspopup="true">
<a href="javascript:void(0)">Services</a>
<div class="subs" id="service-subs" aria-haspopup="false">
<a href="~/services/all">Product List</a><br />
<a href="~/services/projects">Projects</a><br />
</div>
</li>
... and so on
所以,.subs 的第二个选择器会显示动画,但是当我将光标移动到 .subs 时它会中断,并且由于光标在显示菜单时检测到 .subs,它在显示时也被中断了很多次。
此外,当.subs 是#nav li 的孩子时,我不明白为什么它可以与兄弟选择器一起使用。
我做错了什么?
谢谢!
【问题讨论】:
-
我认为您提供的链接没有任何问题。你能解释一下那里的问题吗?
-
特别是,当我使用第二个选择器并将鼠标移动到导航栏中的菜单项时,子菜单会向下滑动。但是当我想点击 sebmenu 中的链接时,它会消失。我为此找到了一个提示:我将“.subs:hover”选择器添加到第二个。但是这里出现了另一个问题,如果我将鼠标从底部移动到导航栏,动画就会开始,并且浏览器会在动画结束之前检测到“.subs”。最后,动画立即结束,所以我的子菜单“传送”而不是幻灯片。
-
我在你的例子中没有看到这个......
-
链接按预期工作。
-
你复制了我给的代码吗?
标签: html css drop-down-menu css-transitions