Javascript IE8中的多级弹出菜单问题
我在教程中制作了一个多级弹出菜单,我正在制作 除了IE8之外,它在所有浏览器中都工作得非常好,第三层就隐藏在第二层后面 有人知道问题出在哪里吗 代码如下:Javascript IE8中的多级弹出菜单问题,javascript,html,css,internet-explorer,internet-explorer-8,Javascript,Html,Css,Internet Explorer,Internet Explorer 8,我在教程中制作了一个多级弹出菜单,我正在制作 除了IE8之外,它在所有浏览器中都工作得非常好,第三层就隐藏在第二层后面 有人知道问题出在哪里吗 代码如下: <div id="menu"> <div id="menu-edge"></div> <ul id="nav"> <li class="top"><a class="top_link" href="http://www.match.ac.uk"&
<div id="menu">
<div id="menu-edge"></div>
<ul id="nav">
<li class="top"><a class="top_link" href="http://www.match.ac.uk">Home</a></li>
<li class="top"><a class="top_link" href="/about.php">About</a>
<ul class="sub" style="margin-left:0px;">
<li><a class="fly" href="/theteam.php">The Team</a>
<ul class="sub-popout">
<li><a href="/researchers.php">Researchers</a></li>
<li><a href="/management.php">Management</a></li>
<li><a href="/investigators.php">Investigators</a></li>
<li><a href="/students.php">PhD Students</a></li>
</ul>
</li>
<li><a href="/vision.php">Our Vision</a></li>
<li><a href="/strategy.php">Strategy</a></li>
<li><a href="/achievements.php">Achievements</a></li>
<li><a href="/literature.php">Literature</a></li>
</ul>
</li>
<li class="top"><a class="top_link" href="/membership.php">Membership</a>
<ul class="sub" style="margin-left:0px;">
<li><a href="/level1.php">Level 1 - Micro</a></li>
<li><a href="/level2.php">Level 2 - SME/Division</a></li>
<li><a href="/level3.php">Level 3 - Large</a></li>
<li><a href="/level1.php">Level 4 - Macro</a></li>
<li><a href="/additional.php">Additional Services</a></li>
</ul>
<li class="top"><a class="top_link" href="/research.php">Research</a>
<ul class="sub" style="margin-left:0px;">
<li><a href="/projecti.php">Project I - Tools for Industry</a></li>
<li><a href="/projectii.php">Project II - Economic Evaluation</a></li>
<li><a href="/projectiii.php">Project III - User Needs</a></li>
<li><a href="/projectiv.php">Project IV - Implementation Issues</a></li>
</ul>
<li class="top"><a class="top_link" href="/publications.php">Publications</a>
<ul class="sub" style="margin-left:0px;">
<li><a href="/2011.php">2011</a></li>
<li><a href="/2010.php">2010</a></li>
<li><a href="/2009.php">2009</a></li>
<li><a href="/2008.php">2008</a></li>
<li><a href="/2007.php">2007</a></li>
<li><a href="/2006.php">2006</a></li>
<li><a href="/2005.php">2005</a></li>
<li><a href="/2004.php">2004</a></li>
<li><a href="/deliverables.php">Deliverables</a></li>
<li><a href="/innovative-manufacturing.php">Innovative Manufacturing</a></li>
</ul>
<li class="top"><a class="top_link" href="/news-events.php">News & Events</a>
<ul class="sub" style="margin-left:0px;">
<li><a href="/news.php">News</a></li>
<li><a href="/events.php">Events</a></li>
<li><a href="/training.php">Training & Workshops</a></li>
</ul>
<li class="top"><a class="top_link" href="/partners.php">Partners</a>
<li class="top"><a class="top_link" href="/contact.php">Contact Us</a>
</ul>
</div>
以下是JS:
stuHover = function() {
var cssRule;
var newSelector;
for (var i = 0; i < document.styleSheets.length; i++)
for (var x = 0; x < document.styleSheets[i].rules.length ; x++)
{
cssRule = document.styleSheets[i].rules[x];
if (cssRule.selectorText.indexOf("LI:hover") != -1)
{
newSelector = cssRule.selectorText.replace(/LI:hover/gi, "LI.iehover");
document.styleSheets[i].addRule(newSelector , cssRule.style.cssText);
}
}
var getElm = document.getElementById("nav").getElementsByTagName("LI");
for (var i=0; i<getElm.length; i++) {
getElm[i].onmouseover=function() {
this.className+=" iehover";
}
getElm[i].onmouseout=function() {
this.className=this.className.replace(new RegExp(" iehover\\b"), "");
}
}
}
if (window.attachEvent) window.attachEvent("onload", stuHover);
stuHover=function(){
var-cssRule;
新闻选民;
for(var i=0;i 对于(var i=0;i这是HTML的顶部:
<!-- header -->
<!-- SEO elements to be edited per page, enter your keywords between the "" -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
使用这些会导致溢出:隐藏的类似效果,这就是为什么你的子菜单看不到的原因。多级CSS菜单
Multilevel CSS Menu<br>
Demo <a href="www.mremind.com">Here</a><br>
<h2>Css For Menu</h2>
<p>
/**
* MAIN NAVIGATION
**/
#mainNav {`enter code here`
height:60px;
margin: 0 auto;
padding-left: 15px;
width:1000px;
vertical-align: middle;
}
#mainNav ul{
list-style-type:block;
list-style-image:none;
background:red;
margin: 0;
padding-right: 0px;
padding-left: 0px;
line-height: 100%;
-khtml-border: 1px solid #BFDBD7;
box-shadow: 0 1px 3px rgba(0, 0, 0, .4);
-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, .4);
-moz-box-shadow: 0 1px 3px rgba(0,0,0, .4);
vertical-align: middle;
}
/************************************** Main Navigation boxes ******************************************************/
#mainNav ul li.navItems{
float:left;
display:inline-block;
width:94px;
height:60px;
border-left:solid 1px #D7D7D7;
}
#mainNav ul li.navItems:hover{
background:#034693;
}
#mainNav ul li.navItems:current{
}
#mainNav ul li.navItems > a{
width:94px;
height:60px;
font-family:Arial, Helvetica, sans-serif;
font-size:12px;
color:#4D4D4D;
display:block;
line-height:5.5em;
text-decoration:none;
text-align:center;
}
#mainNav ul li.navItems a:hover{
color:#FFF;
}
#mainNav ul li.navItems:hover a{
color:#FFF; /*keeps main nav text white upon rollover*/
}
#mainNav ul li.navItems:hover ul a{
color:#4D4D4D; /*stops sublinks from being white */
}
/* Dropdown List */
#mainNav ul li.navItems ul{
background:#FAFAFA;
border:1px solid #CCC;
list-style:none;
position:absolute;
display:none;
width:250px;
z-index:100;
}
#mainNav ul li.navItems ul li
{
padding: 10px 0;
font-size: 13px;
line-height: 1.5em !important;
border-bottom: 1px solid #CCC;
white-space: nowrap;
text-align: left;
}
#mainNav ul li.navItems ul li a{
font-size: 13px;
line-height: 1.5em !important;
text-align: left;
text-decoration: none;
padding-left:5px;
}
#mainNav ul li.navItems:hover ul li > a:hover{
background:#034693;
color:#FFF;
}
#mainNav ul li.navItems:hover ul li:hover{
background:#034693;
color:#FFF;
}
#mainNav ul li.navItems:hover ul li:hover > a{
background:#034693;
color:#FFF;
}
#mainNav ul li.navItems:hover ul.secondul{
display:block;
position:absolute;
}
/************************************** Sub Menu boxes ******************************************************/
#mainNav ul.secondul li.MarketingLI:hover ul
{
display:block;
position:absolute;
}
#mainNav ul.secondul li.MarketingLI ul{
width:200px;
padding:0;
font-size:13px;
line-height:1.5em !important;
border-bottom:1px solid #CCC;
white-space:nowrap;
text-align:left;
display:none;
top:0;
margin-left:100%;
}
</p><br>
<br>
<h2>HTML</h2><br>
<p>
<div id="mainNav">
<ul >
<li class="navItems"><a href=""></a> </li>
<li class="navItems" ><a class="first" href="#"></a>
<ul class="secondul">
<li class="MarketingLI"><a class="first" href=""></a>
<ul >
<li ><a href="">2nd Level 1</a>
</li>
<li ><a href="">2nd Level 1</a>
</li>
<li ><a href="">2nd Level 1</a>
</li>
</ul>
</li>
<li><a href=""></a>
</li>
<li><a href="#"></a></li>
</ul>
</li>
<li class="navItems"><a href=""></a>
</li>
<li class="navItems"><a href=""></a></li>
<li class="navItems"><a href=""></a> </li>
<li class="navItems"><a href=""></a> </li>
</ul>
<!--mainNav-->
</div>
</p>
演示
菜单的Css
/**
*主导航
**/
#mainNav{`在此处输入代码`
高度:60px;
保证金:0自动;
左侧填充:15px;
宽度:1000px;
垂直对齐:中间对齐;
}
#主导航ul{
列表样式类型:块;
列表样式图像:无;
背景:红色;
保证金:0;
右边填充:0px;
左侧填充:0px;
线高:100%;
-khtml边界:1px实心#BFDBD7;
盒影:0 1px 3px rgba(0,0,0,4);
-webkit盒阴影:0 1px 3px rgba(0,0,0,4);
-moz盒阴影:0 1px 3px rgba(0,0,0,4);
垂直对齐:中间对齐;
}
/**************************************主导航框******************************************************/
#主导航ul li.navItems{
浮动:左;
显示:内联块;
宽度:94px;
高度:60px;
左边框:实心1px#d7d7;
}
#主导航ul li.导航项:悬停{
背景#034693;
}
#主导航ul li.导航项:当前{
}
#主导航ul li.navItems>a{
宽度:94px;
高度:60px;
字体系列:Arial、Helvetica、无衬线字体;
字体大小:12px;
颜色:#4d;
显示:块;
线高:5.5em;
文字装饰:无;
文本对齐:居中;
}
#主导航ul li.navItems a:悬停{
颜色:#FFF;
}
#主导航ul li.导航项:悬停a{
颜色:#FFF;/*在滚动时使主导航文本保持白色*/
}
#主导航ul li.导航项:悬停ul a{
颜色:#4d;/*阻止子链接变为白色*/
}
/*下拉列表*/
#主导航ul li.navItems ul{
背景:#FAFAFA;
边框:1px实心#CCC;
列表样式:无;
位置:绝对位置;
显示:无;
宽度:250px;
z指数:100;
}
#主导航ul li.navItems ul li
{
填充:10px0;
字体大小:13px;
线高:1.5em!重要;
边框底部:1px实心#CCC;
空白:nowrap;
文本对齐:左对齐;
}
#主导航ul li.navItems ul li a{
字体大小:13px;
线高:1.5em!重要;
文本对齐:左对齐;
文字装饰:无;
左侧填充:5px;
}
#主导航ul li.导航项:悬停ul li>a:悬停{
背景#034693;
颜色:#FFF;
}
#主导航ul li.导航项:悬停ul li:悬停{
背景#034693;
颜色:#FFF;
}
#主导航ul li.导航项:悬停ul li:悬停>a{
背景#034693;
颜色:#FFF;
}
#主导航ul li.导航项:悬停ul.secondul{
显示:块;
位置:绝对位置;
}
/**************************************子菜单框*********************************************************************************/
#主导航ul.secondulli.MarketingLI:悬停ul
{
显示:块;
位置:绝对位置;
}
#主导航ul.secondul li.MarketingLI ul{
宽度:200px;
填充:0;
字体大小:13px;
线高:1.5em!重要;
边框底部:1px实心#CCC;
空白:nowrap;
文本对齐:左对齐;
显示:无;
排名:0;
左边距:100%;
}
HTML
-
-
-
-
-
-
-
似乎对我有用。你修好了吗?@GaryRyan你是在IE8上试用的吗?这是唯一一个不起作用的浏览器。是的,对不起,你说的对。我复制并粘贴了错误的网站…我的错。只是删除了评论,对菜单没有任何影响。我更新了我的答案。这不是一个完整的解决方案,但它是w为什么你看不到第二级的子菜单。谢谢@thirtydot,它可以工作,但删除css会带来另一个问题。我有一个透明的背景,适用于所有其他浏览器,这是IE的一个补丁,现在它没有背景了。有没有办法让它在IE中再次出现(一个坚实的背景就可以了)但是为所有其他浏览器显示透明度?请尝试背景:#背景:rgba(?,?,?)
。IE不支持rgba
,因此它将忽略第二个背景
。支持rgba
的浏览器(包括IE 9)将使用第二个背景
。感谢您的努力。用一个透明的png解决了它。最后。我想
filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#00B1E8,endColorStr=#00B1E8);
-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#00B1E8,endColorstr=#00B1E8)";
Multilevel CSS Menu<br>
Demo <a href="www.mremind.com">Here</a><br>
<h2>Css For Menu</h2>
<p>
/**
* MAIN NAVIGATION
**/
#mainNav {`enter code here`
height:60px;
margin: 0 auto;
padding-left: 15px;
width:1000px;
vertical-align: middle;
}
#mainNav ul{
list-style-type:block;
list-style-image:none;
background:red;
margin: 0;
padding-right: 0px;
padding-left: 0px;
line-height: 100%;
-khtml-border: 1px solid #BFDBD7;
box-shadow: 0 1px 3px rgba(0, 0, 0, .4);
-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, .4);
-moz-box-shadow: 0 1px 3px rgba(0,0,0, .4);
vertical-align: middle;
}
/************************************** Main Navigation boxes ******************************************************/
#mainNav ul li.navItems{
float:left;
display:inline-block;
width:94px;
height:60px;
border-left:solid 1px #D7D7D7;
}
#mainNav ul li.navItems:hover{
background:#034693;
}
#mainNav ul li.navItems:current{
}
#mainNav ul li.navItems > a{
width:94px;
height:60px;
font-family:Arial, Helvetica, sans-serif;
font-size:12px;
color:#4D4D4D;
display:block;
line-height:5.5em;
text-decoration:none;
text-align:center;
}
#mainNav ul li.navItems a:hover{
color:#FFF;
}
#mainNav ul li.navItems:hover a{
color:#FFF; /*keeps main nav text white upon rollover*/
}
#mainNav ul li.navItems:hover ul a{
color:#4D4D4D; /*stops sublinks from being white */
}
/* Dropdown List */
#mainNav ul li.navItems ul{
background:#FAFAFA;
border:1px solid #CCC;
list-style:none;
position:absolute;
display:none;
width:250px;
z-index:100;
}
#mainNav ul li.navItems ul li
{
padding: 10px 0;
font-size: 13px;
line-height: 1.5em !important;
border-bottom: 1px solid #CCC;
white-space: nowrap;
text-align: left;
}
#mainNav ul li.navItems ul li a{
font-size: 13px;
line-height: 1.5em !important;
text-align: left;
text-decoration: none;
padding-left:5px;
}
#mainNav ul li.navItems:hover ul li > a:hover{
background:#034693;
color:#FFF;
}
#mainNav ul li.navItems:hover ul li:hover{
background:#034693;
color:#FFF;
}
#mainNav ul li.navItems:hover ul li:hover > a{
background:#034693;
color:#FFF;
}
#mainNav ul li.navItems:hover ul.secondul{
display:block;
position:absolute;
}
/************************************** Sub Menu boxes ******************************************************/
#mainNav ul.secondul li.MarketingLI:hover ul
{
display:block;
position:absolute;
}
#mainNav ul.secondul li.MarketingLI ul{
width:200px;
padding:0;
font-size:13px;
line-height:1.5em !important;
border-bottom:1px solid #CCC;
white-space:nowrap;
text-align:left;
display:none;
top:0;
margin-left:100%;
}
</p><br>
<br>
<h2>HTML</h2><br>
<p>
<div id="mainNav">
<ul >
<li class="navItems"><a href=""></a> </li>
<li class="navItems" ><a class="first" href="#"></a>
<ul class="secondul">
<li class="MarketingLI"><a class="first" href=""></a>
<ul >
<li ><a href="">2nd Level 1</a>
</li>
<li ><a href="">2nd Level 1</a>
</li>
<li ><a href="">2nd Level 1</a>
</li>
</ul>
</li>
<li><a href=""></a>
</li>
<li><a href="#"></a></li>
</ul>
</li>
<li class="navItems"><a href=""></a>
</li>
<li class="navItems"><a href=""></a></li>
<li class="navItems"><a href=""></a> </li>
<li class="navItems"><a href=""></a> </li>
</ul>
<!--mainNav-->
</div>
</p>