2009-12-16 79 views
1

当您将鼠标悬停在顶层链接上时,子菜单显示为应该显示,但是当您将光标向下移动到子菜单上时,它会立即消失,有时会在第3或第4子菜单链接后消失,具体取决于您是! 它在firefox,ie7和ie8中正常工作,并验证了css和xhtml的过渡。 请帮助我只是看不到问题。我曾尝试将margin-top:-1px添加到子li和/或sub ul中,但无济于事。Safari和Chrome中的CSS菜单问题。子菜单消失,除非你真的很快!

任何想法都感激不尽。哦,我应该说我正在使用Windows Vista,safari 4.0.4,并且网站用户标记了问题,他使用的是Safari 3和Windows XP。

感谢

安妮

的html代码:

<ul id="menu"> 
     <li id="menu1" ><a href="http://www.theservicebusiness.com/" title="Home">Home</a></li> 
<li id="menu15" class="active"><a href="/what-we-do.html" title="What we do">What we do</a><ul class="subm"><li class=" subli"> 
<a href="/what-is-lean-service.html" title="What is Lean Service">What is Lean Service</a> 

</li> 
<li class=" subli"> 
<a href="/performance-metrics.html" title="Performance Metrics">Performance Metrics</a> 

</li> 
<li class=" subli"> 
<a href="/service-network-lean.html" title="Designing the service network around Lean concepts">Service Network</a> 

</li> 
<li class=" subli"> 
<a href="/global-process.html" title="Global process">Global Process</a> 

</li> 
<li class=" subli"> 
<a href="/organisation.html" title="Organisation">Organisation</a> 

</li> 
<li class="last subli"> 
<a class="last" href="/technology-and-information.html" title="Technology and Information">Technology</a> 

</li> 
</ul></li> 
<li id="menu72" ><a href="/how-we-do-it.html" title="How we do it">How we do it</a><ul class="subm"><li class=" subli"> 
<a href="/discovery.html" title="Discovery">Discovery</a> 

</li> 
<li class=" subli"> 
<a href="/gain-share.html" title="Gain Share">Gain Share</a> 

</li> 
<li class="last subli"> 
<a class="last" href="/smart-sourcing.html" title="Smart Sourcing">Smart Sourcing</a> 

</li> 
</ul></li> 
<li id="menu54" ><a href="/clients.html" title="Clients">Clients</a><ul class="subm"><li class=" subli"> 
<a href="/testimonials.html" title="Testimonials">Testimonials</a> 

</li> 
<li class=" subli"> 
<a href="/defence.html" title="Defence industry case studies">Defence</a> 

</li> 
<li class=" subli"> 
<a href="/hi-tech.html" title="Hi-Tech">Hi-Tech</a> 

</li> 
<li class=" subli"> 
<a href="/Industrial.html" title="Industrial">Industrial</a> 

</li> 
<li class=" subli"> 
<a href="/telecom.html" title="Telecom">Telecom</a> 

</li> 
<li class=" subli"> 
<a href="/computing.html" title="Computing">Computing</a> 

</li> 
<li class=" subli"> 
<a href="/medical.html" title="Medical Sector">Medical</a> 

</li> 
<li class="last subli"> 
<a class="last" href="/rail.html" title="Rail">Rail</a> 

</li> 
</ul></li> 
<li id="menu33" ><a href="/about-us.html" title="About us">About Us</a><ul class="subm"><li class=" subli"> 
<a href="/director-bios.html" title="Director Bios">Director Bios</a> 

</li> 
<li class=" subli"> 
<a href="/ethical-and-social-responsibility.html" title="Ethical and social responsibility">Social Responsibility</a> 

</li> 
<li class="last subli"> 
<a class="last" href="/jobs.html" title="Job opportunities">Job Opportunities</a> 

</li> 
</ul></li> 
<li id="menu73" ><a href="/global-locations.html" title="Global Locations">Global Locations</a></li> 
<li id="menu6" ><a href="/contact-us.html" title="Contact Us">Contact us</a></li> 
<li id="menu2" class="last"><a href="/blog.html" title="Blog">Blog</a></li> 

    </ul> 

和CSS:

#head, #headint, #menu ul {z-index:100} 
#head h1, #headint h1 {z-index:0} 
#menu1 {z-index:99} 
#menu15 {z-index:98} 
#menu32 {z-index:97} 
#menu33 {z-index:96} 
#menu48 {z-index:95} 
#menu6 {z-index:94} 
#menu2 {z-index:93} 
#menu49 {z-index:92} 
#menu, #menu ul {padding: 0;margin: 0 auto; list-style: none; width: 940px; } 
#menu a {display: block;border:0; } 
#menu li { float: left;width: 100px; background:transparent ; margin-bottom:0; height: 50px;} 
#menu li a {text-align: center; padding-top: 37px; font-size: 13px; font-weight: bold;color: #C3C3C3; background: url(../images/bg_nav-00-divider.png) no-repeat ; background-position: 0 bottom} 
#menu li a:hover { color:#99ccff} 
li#menu72 ul.subm, li#menu15 ul.subm, li#menu54 ul.subm, li#menu33 ul.subm { position:relative; width: 196px; left: -999em; background:transparent url('../images/bg_subnav.png') no-repeat scroll 0 bottom;text-align:left } 
li#menu72 ul.subm li, li#menu15 ul.subm li, li#menu54 ul.subm li, li#menu33 ul.subm li { float:none; background:transparent; display:block; width:183px;text-align:left; height: 31px; } 
li#menu72 ul.subm li a, li#menu15 ul.subm li a, li#menu54 ul.subm li a, li#menu33 ul.subm li a { padding:15px 0 0 35px; background: transparent url('../images/menbul.png') no-repeat 5px bottom; text-align:left} 
li#menu72 ul.subm li.last a.last, li#menu15 ul.subm li.last a.last, li#menu54 ul.subm li.last a.last, li#menu33 ul.subm li.last a.last { padding:15px 0 25px 35px !important; background: transparent url('../images/menbul.png') no-repeat 5px 10px; } 
li#menu72 ul.subm li.last, li#menu15 ul.subm li.last, li#menu54 ul.subm li.last, li#menu33 ul.subm li.last { height:56px} 
#menu li:hover ul, #menu li.sfhover ul {left: auto ;} 
li#menu1{ width:253px;} 
li#menu1 a{ background: url('../images/logo.png') no-repeat 0px 0px; left: 0px; width: 253px; top: 5px; height: 50px;overflow: hidden; text-indent: -9999em; outline: none} 
#menu:hover li {background-position: 0 0;} 
li#menu49 a { color:#99ccff; font-weight:bold;font-size:13px} 
li#menu49 a:hover { color:#C3C3C3; } 
li#menu54{ width:90px;} 
li#menu33{ width:90px;} 
li#menu6{ width:90px;} 
li#menu2{ width:56px;} 
li#menu73{ width:130px;} 

回答

0

我发现问题...横幅与菜单重叠。随着你提供的代码,我无法复制这个问题。但添加横幅和适当的CSS后,我发现它重叠。

经过多次尝试将整个事物往下移动(加入5 <br />的工作LOL)。我找到源,改变这一行,margin-bottom: 0margin-bottom: 5px

#menu li { float: left; width: 100px; background: transparent; margin-bottom: 5px; height: 50px;} 
+0

你是对的!谢谢......我真的不得不在现实生活中将它改为6px才能使用,但非常感谢!在这样做时,它突出显示了ie7粘滞悬停错误,但我通过交换#menu修复了这个问题:将hover li移动到#menu li:hover – Anni 2009-12-16 16:31:18

0

我很难复制这个问题,但我想我有东西给你尝试。

看来您正在使用相对定位来隐藏和显示子菜单(从-999em移动到自动)。相反,我会尝试使用:

li#menu72 ul.subm, li#menu15 ul.subm, li#menu54 ul.subm, li#menu33 ul.subm { visibility: hidden; } 

#menu li:hover ul, #menu li.sfhover ul { visibility: visible; } 

这样,元素不会四处移动 - 它们会“卡住”到位,并且只是被切换。

给这个镜头,让我们知道它是如何工作的。祝你好运!

+0

嗨,感谢您的回复,我必须承认,当我阅读它时,我认为是必须的.​​.....但遗憾的是,问题依然存在......这太烦人了,我看不出原因它。任何其他想法? 由于某些原因,这个问题在长子菜单上是最差的。较短的有时可以。 – Anni 2009-12-16 15:11:21

0

我有这个同样的问题,事实证明,它实际上是黄色的提示是那样的原因。如果最终用户的光标设法将鼠标悬停在工具提示上,safari将结束悬停事件b/c,它不会将工具提示看作其父级html元素的一部分。作为一个修复,我实现了jquery,当最终用户将鼠标移到它们上方时,从导航中的标签中移除标题属性。

$(document).ready(function() { 
    var originalTitle = ''; 
    $("div#menu ul li a").hover(
    function() { 
     originalTitle = $(this).attr("title"); 
     $(this).attr("title",""); 
    }, 
    function() { 
     $(this).attr("title",originalTitle); 
    } 
    );    
}); 

希望这可以帮助所有其他人解决此问题,因为我花了大约一个小时才弄明白。