IE 6仅支持:将鼠标悬停在<a>
上,然后我们可以使用以下内容进行css下拉:hover on <a>
http://htmldog.com/articles/suckerfish/dropdowns/
此示例使用JavaScript在LI
上添加悬停'sfhover'类中的li元素 'nav'id'd ul元素 'moused over'并删除它,使用a 正式表达,当'被淘汰'时。
所以现在我们有了Suckerfish 下一步,抽出新课程 是简单地复制:悬停 选择器与'sfhover'类 选择器:
答案 0 :(得分:2)
你可以排序让它发挥作用。下面的代码显示了一个功能菜单,它依赖于a:hover
来触发显示。但是,它有一些警告:
<a />
代码,因此您只能使用一个级别的菜单项。onclick
事件处理程序来处理用户对菜单项的点击。:hover
规则才能触发悬停行为。如果没有#menu:hover
规则,#menu:hover span
将被忽略。该规则需要至少包含一个样式分配,并非所有属性似乎都有效(例如background-color
或border
有效,但color
没有。)代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>CSS Menu in IE6</title>
<style type="text/css">
#menu {
background-color: #cccccc;
color: black;
text-decoration: none;
position: relative;
}
#menu span {
display: none;
}
/* I'm using <b /> tags for the submenu items, just to make the styling easier. */
#menu span b {
display: block;
font-weight: normal;
}
/* IE6 seems to require some :hover rule on the anchor element itself.
Without it, the '#menu:hover span' rule below is ignored. */
#menu:hover {
border: none;
}
#menu:hover span {
background-color: #cccccc;
cursor: pointer;
display: block;
position: absolute;
top: 1em;
left: 10px;
}
</style>
</head>
<body>
<div>
<a href="#" id="menu">Menu
<span>
<b onclick="alert('Item 1!');">Item 1</b>
<b onclick="alert('Item 2!');">Item 2</b>
<b onclick="alert('Item 3!');">Item 3</b>
</span>
</a>
<p>
Lorem ipsum doler sit amet...
</p>
</div>
</body>
</html>
<强>更新强>:
IE6确实可以使用嵌套的<a />
元素。我尝试在子菜单中嵌入一个链接,它显示正确,但是鼠标悬停在内部链接上导致外部链接丢失:hover
,菜单将从光标下消失。
但是,显然如果你将菜单包装在一个表格中(如所示here),它就可以了。请注意,以下代码有效,但不会验证,可能会在其他浏览器中爆炸:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>CSS Menu in IE6</title>
<style type="text/css">
#menu {
background-color: #cccccc;
color: black;
text-decoration: none;
}
#menu ul {
display: none;
}
#menu:hover {
border: none;
}
#menu:hover ul {
background-color: #cccccc;
display: block;
margin: 0;
margin-left: 10px;
padding: 0;
list-style-type: none;
}
</style>
</head>
<body>
<div>
<a href="#" id="menu">Menu
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<ul>
<li><a href="http://www.google.com">Google</a></li>
<li><a href="http://www.yahoo.com">Yahoo</a></li>
<li><a href="http://www.stackoverflow.com">Stack Overflow</a></li>
</ul>
</td>
</tr>
</table>
</a>
<p>
Lorem ipsum doler sit amet...
</p>
</div>
</body>
</html>
答案 1 :(得分:0)
试试ie7-js。
如果javascript绝对不是一个选项,您可以使用仅限CSS下拉菜单的众多示例之一,例如Stu Nicholls的The ULTIMATE CSS only drop-down menu。
在我看来,让IE6通过js表现得更好,对于必须针对它所缺少的每个功能实施的css hacks都是可取的。
答案 2 :(得分:0)
是的,只要您将子菜单嵌套在锚点中,就可以。
<a class="hoverMenu">
MenuText
<div class="subMenu">
SubMenuText
</div>
</a>
.hoverMenu .subMenu { display: none; }
.hoverMenu:Hover .subMenu { display: block; }
我没有为IE6测试过这个,但这是任何其他浏览器中所有css菜单背后的基本思想。不确定你是否可以嵌套锚。