我正在尝试构建一个固定在屏幕顶部的响应式导航菜单。我可以让响应部分和顶级菜单工作,但是当我尝试将下拉子菜单添加到导航中时,我的菜单分崩离析。我似乎无法让子菜单扩展到它们的容器之外。每当我将定位应用于我的 ul 列表时,子菜单要么在悬停时被剪掉,要么导致容器扩展。有什么办法可以防止子菜单被剪裁并允许它们延伸到容器之外吗?谢谢。
注意:下面的代码没有将 display:none
和 hover 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>
最佳答案
我想通了。我将 position:relative 和 positioned:absolute 设置为错误的元素。
关于css - 固定导航下拉菜单剪辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37379130/