我看过这个问题,但我似乎无法将答案应用到我自己的菜单中。我的 suckerfish 菜单基本上是这样的 ( http://htmldog.com/articles/suckerfish/dropdowns/example/vertical.html ),我自己对颜色/字体做了一些调整/并清除了表格的边框。我怎样才能做到这一点,当你在一个选择的选项中移动时,你所经历的一切都会突出显示,这样你就知道你选择了哪些选项来到达你所在的位置?我已经对它附带的所有样式进行了反复试验,例如 #nav、this 和 #nav、that,但它们似乎都没有同时引用一个嵌套列表项的所有先前菜单。
我几乎一直在自学这个,所以我试着在我的问题中尽可能清楚,希望我是有道理的!!!
非常感谢!
最佳答案
以上在 Firefox 中工作正常但在 IE 中不行,因为 IE 不尊重继承。这样一来,当您将鼠标移动到 LI 标记的其他部分时,链接的颜色不会停留在其悬停颜色。
下面的代码不是很漂亮,但可以工作:
HTML
<ul id="nav">
<li ><a href="test.org" class="navlink">Test</a>
<ul>
<li ><a href="test2.org">Test2</a></li>
<li ><a href="test2.org">Test2</a></li>
</ul>
</li>
<li ><a href="test.org" class="navlink">Bonk</a>
<ul>
<li ><a href="test2.org">Bonk2</a></li>
<li ><a href="test2.org">Bonk2</a></li>
</ul>
</li>
</ul>
Javascript
sfHover = function() {
var sfEls = document.getElementById("nav").getElementsByTagName("LI");
for (var i=0; i<sfEls.length; i++) {
sfEls[i].onmouseover=function() {
var els = this.getElementsByTagName("A");
for (var j=0; j<els.length; j++) {
if(els[j].className =="navlink") els[j].style.color = '#FFFFFF';
}
this.className+=" sfhover";
}
sfEls[i].onmouseout=function() {
var els = this.getElementsByTagName("A");
for (var j=0; j<els.length; j++) {
if(els[j].className =="navlink") els[j].style.color = 'Red';
}
this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
}
}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);
关于html - 在垂直的 suckerfish 中保持较高的菜单突出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1347579/