我正在尝试使用Superfish jQuery 插件来增强网站上的下拉菜单。但是,当光标在 Firefox 浏览器 (v. 21.0) 中悬停在下拉菜单上时,它不会打开。在 Chrome 和 Opera 中它可以工作。如果没有 Superfish 插件,下拉菜单也可以在带有纯 CSS 的 Firefox 中使用。
使用cssArrows
Superfish 选项时,箭头不会显示在任何浏览器中(即使使用更多填充)。我不知道这个问题是否与第一个有关。
这是我的标记:
<nav>
<ul>
<li><a href="#">Page 1</a></li>
<li>
<a href="#">Page 2</a>
<ul>
<li><a href="#">Page 2.1</a></li>
<li><a href="#">Page 2.2</a></li>
<li><a href="#">Page 2.3</a></li>
</ul>
</li>
<li><a href="#">Page 3</a></li>
<li><a href="#">Page 4</a></li>
<li><a href="#">Page 5</a></li>
</ul>
</nav>
这是我的 CSS/SASS:
nav {
width: 100%;
float: left;
ul {
display: block;
float: left;
width: 100%;
li {
position: relative;
display: block;
float: left;
a {
display: block;
padding: 14px 14px;
}
/* drop-down */
ul {
display: none;
position: absolute;
left: 0;
top: 100%;
padding: 0;
border: 1px solid #aaa;
border-top-width: 0;
li {
float: none;
a {
padding: 8px 3px;
border-top: 1px solid #aaa;
}
}
}
&:hover,
&.sfHover {
ul {
display: block;
}
}
}
}
}
这是我的 Superfish 电话:
$('nav').superfish();
在 Firefox 中,当我将鼠标悬停在li
包含二级菜单的标签上时,li
没有得到应有的sfHover
类。相反,顶层ul
获得sfHover
分配给它的类。然后,当我在该标签上按下鼠标左键时li
,它会获得“sfHover”标签并显示下拉菜单。在 Chrome 和 Opera中,sfHover
类被分配给正确的元素。
Superfish 插件网站的示例也适用于我的 Firefox 浏览器,但它们并没有帮助我解决这个问题。我的菜单 html 标记与这些示例中的几乎相同。
我试过
- 将 z-indexes 分配给不同的元素,但它没有帮助(没想到)。目前,页面上没有任何元素分配给它的 z-index。
li
为和元素分配宽度,a
因为我读到它在某些问题情况下有所帮助。- 使用 Superfish 示例中的样式表,但它们并没有更好地工作。
margin-left: -9999px
用代替 隐藏下拉菜单,display: none
但这没有帮助。- 初始化 Superfish 时使用所有选项
- 使用标签而
position: relative
不是标签a
li
我还检查了我的 html 是否有效。
谁能弄清楚是什么问题?我将不胜感激任何建议。