固定导航下拉菜单剪辑

时间:2016-05-22 20:07:26

标签: css3

我正在尝试构建一个固定在屏幕顶部的自适应导航菜单。我可以使响应部分和顶级菜单工作,但当我尝试将下拉子菜单添加到导航时,我的菜单崩溃了。我似乎无法让子菜单扩展到容器之外。当我将定位应用于我的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>

1 个答案:

答案 0 :(得分:0)

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