2016-05-22 121 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

我想通了。我有位置:相对和定位:绝对设置为错误的元素。