2013-02-21 156 views
0

你好,我有這樣的
修復位置

<ul> 
    <li>MenuItem1</li> 
    <li>MenuItem2</li> 
    <li>MenuItem3 
    <ul> 
     <li>SubMenuItem3.1</li> 
     <li>SubMenuItem3.2</li> 
    </ul> 
    </li> 
</ul> 

這是在頁面的中心對齊的橫向菜單,和我想要做的就是當一個兩級菜單MenuItem3被選中,其子菜單出現,其項目應出現在MenuItem3下面。我描述是這樣的:

MenuItem1 MenuItem2 MenuItem3 
          /\ 
      SubMenuItem3.1 SubMenuItem3.2 

我已經做到了水平和出現的子菜單,但的MenuItem3增加大小以適應子菜單的大小。所以,我得到的是這樣的:

MenuItem1 MenuItem2   MenuItem3 
            /\ 
         SubMenuItem3.1 SubMenuItem3.2 

有什麼辦法解決這個問題嗎?這是純粹的CSS可能嗎?

謝謝!


BenM請求後,這裏是我目前使用的CSS:

#menu ul { 
    list-style: none; 
    margin: 0; 
    padding: 0; 
} 

#menu > ul > li { 
    position: relative; 
    float: left; 
} 

#menu > ul > li > ul { 
    list-style: none; 
    margin: 0; 
    padding: 0; 
} 

#menu > ul > li > ul > li{ 
    position: relative; 
    float: left; 
} 

------------------------ -------------
Edit vol.2
----------------------------- --------
經過Sen Jacob的建議之後,我修改了一下這one,並且因爲我不知道每個頂級菜單項有多少個孩子,所以我使用了Javascript進行適當的中心對齊。特別是我使用了JQuery的width()position()函數。我希望這是有道理的。

+2

請告訴我們你的CSS ... – BenM 2013-02-21 12:05:36

+0

更新了原來的職位與當前的CSS – George 2013-02-21 12:20:44

回答

1

你需要做li包含子ul,通過不關閉您的li早做到這一點:

<li>MenuItem3</li> 
    <ul> 
     <li>SubMenuItem3.1</li> 
     <li>SubMenuItem3.2</li> 
    </ul> 

變成

<li>MenuItem3 
    <ul> 
     <li>SubMenuItem3.1</li> 
     <li>SubMenuItem3.2</li> 
    </ul> 
</li> 
+0

你說得對,這就是我有它;我在原帖中犯了一個錯誤。謝謝 – George 2013-02-21 12:10:46

1

你是不是想實現這一目標?

CSS3 Family Tree

嘗試下面的樣式,jsFiddle

#menu ul { 
    width:auto; 
    clear:both; 
    display:block; 
    list-style: none; 
    margin:0 auto; 
} 
ul li { 
    display: inline-block; 
    position: relative; 
    text-align:center; 
    padding: 2px; 
} 
li ul { 
    position: relative; 
    display:inline; 
    top:25px; 
    right:50%; 
} 
+0

這更像你發佈的第一張(家譜),但我希望每個家長的位置都是「固定的」,不管他們的孩子。 – George 2013-02-21 12:24:19

+0

我已更新我的帖子,請檢查 – 2013-02-21 12:48:00

+0

非常感謝您的更新。這是它現在的樣子。你是否看到MenuItem3「移動」在右側以包含其子菜單?我希望它保持2px(就像在你的CSS中)到MenuItem2的右邊(就像MenuItem2是2px到MenuItem1的右邊)。換句話說,我想把整個Menu3移到左邊。我希望這是有道理的。如果不是,請讓我知道,我會嘗試上傳圖片。謝謝 – George 2013-02-21 13:05:11