【发布时间】:2016-06-02 22:37:45
【问题描述】:
我有一个非常简单的导航栏——水平的,带有一层垂直的下拉菜单——我使用 CSS 实现了它。当鼠标离开下拉菜单时,我想添加一个短暂的延迟。环顾四周,可见性属性的 CSS 过渡似乎可以让我接近。这是相关的CSS:
.navigation ul ul
{
display: block;
visibility: hidden;
-webkit-transition: visibility .75s, linear;
-moz-transition: visibility .75s, linear;
/* etc... */
transition: visibility .75s, linear;
}
.navigation ul li:hover > ul
{
visibility: visible;
}
这正是我在 Firefox (44.0.2)、Chrome (48.0.2564.116) 甚至 Opera (35.0.2066.68) 中的 OS X 上所需要的。事实上,我很惊讶 mouseover 没有延迟,但延迟是在 mouseoff 上应用的。正是我想要的。
在 Safari (9.0.3) 中,它就像不存在过渡属性一样 - 下拉菜单在鼠标关闭时立即消失。查看“检查元素”,我可以看到浏览器已经(正确地)为有问题的 ul 标记拾取了转换属性。
我是否遗漏了什么,其他浏览器是否只是允许? Safari 是否动作不正确?这不是一个大问题,但如果可能的话,我想让它在任何地方都能正常工作。谢谢!
注意/编辑关于重复问题的可能性 (CSS transition with visibility not working):就我而言,二进制可见性效果在我尝试过的所有情况下都可以正常工作,但 Safari 除外。另外,我已经弄清楚了,我将在下面发布...
【问题讨论】:
标签: css safari transition visibility