2013-06-02 32 views
1

我對HTML新手並嘗試使用css在HTML中創建菜單。我創建了2級CSS下拉菜單,但問題是子菜單或二級菜單的子菜單沒有按照它應該顯示的那樣排列。子菜單的子菜單不是嵌套

這裏是HTML文件:

<nav> 
     <ul> 
      <li class="menuList"><a href="#" class="menuItem">Menu 1</a></li> 

      <li class="menuList"> 
       <a href="#" class="menuItem">Menu 2</a> 
       <ul class="menuLevel1"> 

        <li class="subMenu1"> 
         <a href="#" class="itemLevel1">Sub menu 1</a> 
        </li> 

        <li class="subMenu1"> 
         <a href="#" class="itemLevel1">Sub menu 2</a> 
         <ul class="menuLevel2"> 
          <li class="subMenu2"><a href="#" class="itemLevel2">Sub Sub menu 1</a></li> 
          <li class="subMenu2"><a href="#" class="itemLevel2">Sub Sub menu 2</a></li> 
          <li class="subMenu2"><a href="#" class="itemLevel2">Sub Sub menu 3</a></li> 
         </ul> 
        </li> 

        <li class="subMenu1"> 
         <a href="#" class="itemLevel1">Sub menu 3</a> 
         <ul class="menuLevel2"> 
          <li class="subMenu2"><a href="#" class="itemLevel2">Sub Sub menu 1</a></li> 
          <li class="subMenu2"><a href="#" class="itemLevel2">Sub Sub menu 2</a></li> 
          <li class="subMenu2"><a href="#" class="itemLevel2">Sub Sub menu 3</a></li> 
         </ul> 
        </li> 

       </ul> 
      </li> 
      <li class="menuList"><a href="#" class="menuItem">Menu 3</a></li> 
     </ul> 
    </nav> 

和CSS文件:

.menuBar { 
background-color: #92CCDA; 
} 
ul{ 
float: left; 
padding: 0; 
margin: 0; 
list-style: none; 
} 
.menuList{ 
float: left; 
} 
.menuItem{ 
display: block; 
width: 100px; 
height: 25px; 
padding: 10px; 
background-color: #92CCDA; 
color: white; 
text-decoration: none; 
text-align: center; 
} 
a:hover { 
background-color: orange; 
} 
.menuLevel1{ 
display: none; 
} 
.subMenu1 { 
display: block; 
} 
.itemLevel1{ 
display: block; 
width: 120px; 
height: 25px; 
background-color: #92CCDA; 
text-align: center; 
padding: 10px; 
text-decoration: none; 
} 
li:hover ul.menuLevel1 { 
display: block; 
position: absolute; 
} 
.menuLevel2 { 
display: none; 
} 
.itemLevel2{ 
display: block; 
width: 120px; 
height: 25px; 
background-color: #92CCDA; 
text-align: center; 
padding: 10px; 
text-decoration: none; 
} 
.menuLevel1 li:hover ul.menuLevel2{ 
display:block; 
position: absolute; 
left:100%; 
} 

回答

1

你幾乎沒有。只需執行以下操作:

  • add position:relative; to .subMenu1使其充當其子女絕對位置的參考。
  • 設置爲top: 0絕對定位.menuLevel2,使其與父母的頂部排隊。

這應該解決它。檢查更新的小提琴:http://jsfiddle.net/hcKHy/1/