2013-10-19 97 views
0

我試圖按照this example,但我不能讓它爲我的需要工作,一些幫助,將不勝感激。如何設計一個CSS子菜單?

UPDATE: 好吧,我的子菜單更好地感謝yourkishore和我解決了一點點怎麼現在處理嵌套菜單,但在我的文本的底部我的子菜單仍然會出現嗎?

** Updated jsFiddle **

HTML:

<ul id="menubar"> 
    <div id="title">title</div> 
    <li>File 
     <ul> 
     <li>Photoshop CC</li> 
     <li>Illustrator CC Adobe</li> 
     <li>My Web Design 
      <ul> 
      <li>HTML</li> 
      <li>CSS</li> 
      </ul> 
     </li> 
     </ul> 
    </li> 
    <li>Config</li> 
</ul> 
<div id=other></div> 

CSS

html, body {height:100%;width:100%;margin:0;} 
#menubar { 
    background: #eeeeee; 
    height:25%; 
    list-style-type: none; 
    width:100%; 
    display: inline-table; 
    margin:0; 
    padding:0; 
    z-index:99; 
} 
#menubar #title { 
    display:inline-block; 
    padding:0 5%; 
    font-size:140%; 
    font-weight:bold; 
    float:left; 
    height:100%; 
    display: inline-flex; 
    align-items: center; 
} 
#menubar li { 
    height:100%; 
    position:relative; 
    float:left; 
    padding:0 1%; 
    list-style-type: none; 
    white-space:nowrap; 
    display: inline-flex; 
    align-items: center; 
} 
#menubar li:hover { 
    background-color:#7faddb; 
} 
#menubar li > ul { 
    background-color:white; 
    z-index:99; 
    display: none; 
    position:absolute; 
    list-style-type: none; 
    margin:0; 
    padding:0; 
} 
#menubar li:hover > ul { 
    display: block; 
} 
#other { 
    background-color:green; 
    position:absolute; 
    top:25%; 
    bottom:0; 
    left:0; 
    right:0; 
} 

回答

0

它正常工作,在你的小提琴,使用HTML

<div id="title">title</div> 
<nav> 
<ul> 
    <li>File 
     <ul> 
     <li>Photoshop CC</li> 
     <li>Illustrator CC Adobe</li> 
     <li>My Web Design 
      <ul> 
      <li>HTML</li> 
      <li>CSS</li> 
      </ul> 
     </li> 
     </ul> 
    </li> 
    <li>Config</li> 
</ul> 
</nav> 
<div id=other></div> 

,並使用這個CSS

body, div, h1, h2, h3, h4, h5, h6, p, ul, ol, li, dl, dt, dd, img, form, fieldset, input, textarea, blockquote { 
    margin: 0; padding: 0; border: 0; 
} 

body { 

    font-family: Helvetica, sans-serif; font-size: 18px; line-height: 24px; 
} 

nav { 

    text-align: center; 
} 

nav ul ul { 
    display: none; 
} 

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


nav ul { 
    padding: 0 20px; 

    list-style: none; 
    position: relative; 
    display: inline-table; 
} 
    nav ul:after { 
     content: ""; clear: both; display: block; 
    } 

    nav ul li { 
     float: left; 
    padding:12px; 
    } 
     nav ul li:hover { 
      background: #505050; 

     } 
      nav ul li:hover a { 
       color: #171717; 
      } 

     nav ul li a { 
      display: block; padding: 25px 40px; 
      color: #994411; text-decoration: none; 
     } 


    nav ul ul { 
     background: #888888; border-radius: 0px; padding: 0; 
     position: absolute; top: 100%; 
    } 
     nav ul ul li { 
      float: none; 
      border-top: 1px solid #111; 
      border-bottom: 1px solid #575f6a; position: relative; 
     } 
      nav ul ul li a { 
       padding: 1px 40px; 
       color: #666; 
      } 
       nav ul ul li a:hover { 
        background: #333; 
       } 

    nav ul ul ul { 
     position: absolute; left: 100%; top:0; 
    } 
     #other { 
    background-color:green; 
    position:absolute; 
    top:25%; 
    bottom:0; 
    left:0; 
    right:0; 
    z-index:-1; 
} 
+0

我不知道如何適合我的菜單欄。我還是很新的:) – shuji

+0

根據你的menubar.try改變了HTML和CSS。 –

1

它顯示在菜單內部,因爲它們在裏面。當你將鼠標移到外面時,讓它們出現在外面。你需要設置一個名爲position的屬性。

爲#menubar裏你需要添加poistion:相對

,然後#menubar李UL需要添加現在的位置是:絕對的。

菜單總是在這個重要的屬性上工作。沒有這個,沒有嵌套列表的菜單。只要學習CSS定位。祝一切順利。

+0

非常感謝您的幫助,解決了一些問題,但我仍然一團糟。 – shuji

+0

如果您對網頁開發未來不瞭解任何內容,請發送郵件給我。 – yourkishore