我正在尝试构建一个固定在屏幕顶部的自适应导航菜单。我可以使响应部分和顶级菜单工作,但当我尝试将下拉子菜单添加到导航时,我的菜单崩溃了。我似乎无法让子菜单扩展到容器之外。当我将定位应用于我的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 :(得分:0)
我明白了。我有位置:相对和定位:绝对设置为错误的元素。