2016-05-22 184 views
0

我正在嘗試構建一個固定在屏幕頂部的響應式導航菜單。我可以使響應部分和頂層菜單正常工作,但是當我嘗試將下拉菜單添加到導航菜單時,我的菜單就會崩潰。我似乎無法讓子菜單超出其容器範圍。當我將定位應用到我的ul列表中時,子菜單會在懸停時被裁剪或導致容器展開。有沒有辦法讓子菜單不被剪切並允許它們延伸到容器之外?謝謝。固定導航下拉菜單剪輯

注意:下面的代碼沒有display:none和懸停display:block屬性應用於子菜單。

此外,我已經看過這裏和其他網站的解決方案,但還沒有找到一個似乎爲我工作。我試圖改變定位和刪除和溢出:隱藏的屬性,但似乎沒有任何工作。

守則(http://codepen.io/noob2016/pen/eZqdMM):

.fixedheader { 
 
    background: #f2f2f2; 
 
    width: 100%; 
 
    position: fixed; 
 
    top: 0; 
 
    z-index: 300; 
 
    transition: box-shadow 0.2s; 
 
} 
 
.top-bar-scrolled { 
 
    border-bottom: 3px solid #d5d5d5; 
 
    box-shadow: 0 3px 3px 1px rgba(0, 0, 0, 0.4); 
 
} 
 
header { 
 
    background: #003383; 
 
    border: 6px solid orange; 
 
} 
 
header .mainNav { 
 
    background: #003383; 
 
    border: 4px solid green; 
 
    max-width: 1140px; 
 
    margin-left: auto; 
 
    margin-right: auto; 
 
} 
 
header .mainNav:after { 
 
    content: " "; 
 
    display: block; 
 
    clear: both; 
 
} 
 
header .mainNav .activeNavlink { 
 
    background: #3366cc; 
 
} 
 
header .mainNav .topnav { 
 
    width: 100%; 
 
    position: relative; 
 
    border: 2px solid red; 
 
} 
 
header .mainNav .topnav .icon { 
 
    display: none; 
 
} 
 
header .mainNav .topnav li { 
 
    display: inline-block; 
 
    float: none; 
 
} 
 
header .mainNav .topnav li a { 
 
    display: block; 
 
    color: #f2f2f2; 
 
    text-align: center; 
 
    padding: 10px 30px; 
 
    text-decoration: none; 
 
    transition: .4s; 
 
    font-size: 0.88889em; 
 
    line-height: 1.6875em; 
 
    color: #f2f2f2; 
 
} 
 
header .mainNav .topnav li a:hover { 
 
    background: #3366cc; 
 
} 
 
header .mainNav li:hover ul a { 
 
    background: #f2f2f2; 
 
    color: #000; 
 
    height: 40px; 
 
    line-height: 40px; 
 
} 
 
header .mainNav li:hover ul a:hover { 
 
    background: #3366cc; 
 
    color: #f2f2f2; 
 
} 
 
header .mainNav .hidden li { 
 
    display: block; 
 
    float: none; 
 
} 
 
header .mainNav li ul li a { 
 
    width: auto; 
 
    min-width: 100px; 
 
    padding: 0 20px; 
 
}
<div class="fixedheader top-bar"> 
 
    <header> 
 
    <nav class="mainNav"> 
 
     <ul class="topnav"> 
 
     <li> 
 
      <a class="activeNavlink" href="index.html">Home</a> 
 
     </li> 
 
     <li> 
 
      <a href="events.html">main</a> 
 
     </li> 
 
     <li> 
 
      <a href="about.html">main 1</a> 
 
      <ul class="hidden"> 
 
      <li><a href="#">sub 1</a></li> 
 
      <li><a href="#">sub 2</a></li> 
 
      <li><a href="#">sub 3</a></li> 
 
      <li><a href="#">sub 4</a></li> 
 
      <li><a href="#">sub 5</a></li> 
 
      </ul> 
 
     </li> 
 
     <li> 
 
      <a href="contact.html">main 2</a> 
 
      <ul class="hidden"> 
 
      <li><a href="#">sub 1</a></li> 
 
      <li><a href="#">sub 2</a></li> 
 
      <li><a href="#">sub 3</a></li> 
 
      <li><a href="#">sub 4</a></li> 
 
      <li><a href="#">sub 5</a></li> 
 
      </ul> 
 
     </li> 
 
     <li> 
 
      <a href="contact.html">main 3</a> 
 
     </li> 
 
     <li> 
 
      <a href="contact.html">main 4</a> 
 
     </li> 
 
     <li class="icon"> 
 
      <a href="javascript:void(0);" style="font-size:15px;" onclick="myFunction()">☰</a> 
 
     </li> 
 
     </ul> 
 
    </nav> 
 
    </header> 
 
</div>

回答

0

我想通了。我有位置:相對和定位:絕對設置爲錯誤的元素。