2012-10-19 45 views
2

离开后隐藏我有以下标记的CSS下拉菜单:CSS下拉菜单:三级列表不通过二级

<ul> 
    <li><a>FieldOne LevelOne</a></li> 
    <li><a>FieldTwo LevelOne</a></li> 
    <li><a>FieldThree LevelOne</a> 
     <ul> 
      <li><a>FieldOne LevelTwo</a> 
       <ul> 
        <li><a>FieldOne LevelThree</a></li> 
        <li><a>FieldTwo LevelThree</a></li> 
       </ul> 
      </li> 
      <li><a>FieldTwo LevelTwo</a> 
       <ul> 
        <li><a>FieldOne LevelOn</a></li> 
       </ul> 
      </li> 
     </ul> 
    </ul> 

下面CSS:

ul ul { 
    display: none; 
} 

ul li { 
    list-style: none; 
} 

ul li:hover > ul { 
    display: block; 
} 

ul 
{ 
    background: #76b800; 
    padding: 0 20px; 
    margin-left: 5px; 
    border-radius: 10px; 
    list-style: none; 
    position: relative; 
    display: inline-table; 
} 

ul:after { 
    content: ""; clear: both; display: block; 
} 

ul li { 
    float: left; 
    min-width: 140px; 
    text-align: center; 
    vertical-align: bottom; 
} 

ul li:hover { 
    background-color: #4478B7; 
} 

ul li a 
{ 
    display: block;  
    padding: 10px 40px 10px 40px; 
    color: #fff; 
    text-decoration: none; 
    font-size: 18px; 
} 

ul ul { 
    background: #4478B7; 
    padding: 0; 
    position: absolute; 
    top: 100%; 
    z-index: 5; 
    margin: 0; 
} 

ul ul li 
{ 
    float: none; 
    border-top: 1px solid; 
    border-bottom: 1px solid; 
    position: relative; 
    border-style: solid; 
    border-width: 1px; 
    border-color: #88AAD2 white #335B8C white; 
} 

ul ul li:hover 
{ 
    background-color: #396599; 
    background-image: none; 
} 

ul ul li a { 
    color: #fff; 
    min-width: 140px !important; 
    padding: 10px 40px 10px 40px !important; 
    font-size: 16px !important; 
} 

ul ul li a:hover { 
    background: #233F61; 
} 

ul ul ul { 
    position: absolute; 
    left: 100%; 
    top:0; 
} 

问题:当您转到第二级并将鼠标悬停在LI上时,会出现第三级列表。如果你从一个LI到另一个LI,第一个LI中嵌套的第三个层次列表消失,第二个嵌套在第二个层次内(如果有的话)。

相反,如果你完全离开第二级列表,不做第三级菜单第二级菜单内导航消失,一旦你重新列表中的第二级菜单第三级最后一个显示的内容出现在它的LI旁边,但没有内容(As没有文本)。这些列表与样式一起出现,就好像它们没有被徘徊一样。

你可以在这里检查效果:http://jsfiddle.net/JE8ZM/。如果你在IE9或Chrome上运行它,它可以工作。但是,如果您在IE7上运行它,请尝试使用FieldOne LevelTwo,将鼠标悬停在其上,然后离开它,而不必进入显示的第三级菜单。然后将鼠标悬停在FieldThree LevelOne上,看看我的意思。

谢谢。

回答