2013-03-19 133 views
1

我使用下面的HTML程序来创建水平子菜单的水平菜单栏。它在Fire Fox和Chrome 中工作正常,但它在IE中不起作用.So 这个程序需要改变什么?带水平子菜单的水平菜单栏在IE中​​不起作用

<html>  
<head>   
<style>  
    /* Targeting both first and second level menus */ 

#nav li { 
    list-style:none; 
    float: left; 
    position: relative; 
} 
#nav li a { 
    display: block; 
    padding: 8px 12px; 
    text-decoration: none; 
} 
#nav li a:hover { 

    background-color:red; 
    color:#FFF; 
    opacity:1; 
} 

/* Targeting the first level menu */ 
#nav { 
    top:150px; 
    min-width:850px; 
    background:#fff; 
    opacity:0.5; 
    display: block; 
    height: 34px; 
    z-index: 100; 
    position: absolute; 
} 
#nav > li > a { 
} 

/* Targeting the second level menu */ 
#nav li ul { 
    color: #333; 
    display: none; 
    position: absolute; 
    width:850px; 
} 
#nav li ul li { 
    display: inline; 
} 
#nav li ul li a { 
    background: #fff; 
    border: none; 
    line-height: 34px; 
    margin: 0; 
    padding: 0 8px 0 10px; 
} 
#nav li ul li a:hover { 
    background-color:red; 
    color:#FFF; 
    opacity:1; 
} 

/* Third level menu */ 
#nav li ul li ul{ 
    top: 0; 
} 
ul.child { 
background-color:#FFF; 
} 
/* A class of current will be added via jQuery */ 
#nav li.current > a { 
    background: #f7f7f7; 
    float:left; 
} 
/* CSS fallback */ 
#nav li:hover > ul.child { 
    left:0; 
    top:34px; 
    display:inline; 
    position:absolute; 
    text-align:left; 
} 
#nav li:hover > ul.grandchild { 
    display:block; 
}  

</style>   
</head>  
<body> 

<ul id="nav"> 
    <li><a href="#">Home</a></li> 
    <li> 
     <a href="#">Products</a> 
     <ul class="child"> 
      <li><a href="#">Hard Drives</a></li> 
      <li><a href="#">Monitors</a></li> 
      <li><a href="#">Speakers</a> 
       <ul class="child"> 
        <li><a href="#">10 watt</a></li> 
        <li><a href="#">20 watt</a></li> 
        <li><a href="#">30 watt</a></li> 
       </ul> 
      </li> 
      <li><a href="#">Random Equipment</a></li> 
     </ul> 
    </li> 
    <li> 
     <a href="#">Services</a> 
     <ul class="child"> 
      <li><a href="#">Repairs</a></li> 
      <li><a href="#">Installations</a></li> 
      <li><a href="#">Setups</a></li> 
     </ul> 
    </li> 
    <li><a href="#">About</a></li> 
    <li><a href="#">Contact</a></li> 
</ul>   
</body> 
    </html> 
+0

未来,请考虑包括一个jsfiddle - 这里是http://jsfiddle.net/DAMr5/ – Jace 2013-03-19 04:42:57

+1

请注意,您的导航将是一个噩梦在手机浏览器中使用... – 2013-03-19 04:43:05

+0

@Jace这个提琴也不工作在IE – 2013-03-19 04:45:48

回答

0

您是否使用modernizr?或者有传统IE浏览器的可用类?您可能想尝试使用IE的单独样式和/或样式表。

或者

您可以从浮动块“内联”元素,旧的浏览器,如IE6不与花车很好地工作将识别切换您的导航。

或者

如果你想坚持用浮漂然后确保你正在设置“宽度”为任何浮动元素。

克里斯Coyier对彩车一个很好的文章,其中包含标记一节:“问题与浮” http://css-tricks.com/all-about-floats/

0

那么由于某种原因,我甚至无法获得小提琴网站在IE8在所有工作.. 。?但是我在你的CSS中注意到的一个问题是不透明。 IE8不支持不透明属性。要更改旧IE中元素的不透明度,请使用filter:alpha(opacity=75);注意,值75是一个从1到100的整数,而不是像不透明属性那样的小数。我希望我能得到更多的帮助,但我甚至无法看到问题出在什么地方...