下拉菜单出现在div外的其他内容后面
问题描述:
我创建了一个使用javascript的导航菜单。我在主菜单中的部分下拉菜单,但是当我点击箭头它只显示下拉到div的结束(见图片):下拉菜单出现在div外的其他内容后面
我怎样才能得到它所以下拉菜单显示在最上面。我已尝试溢出:可见,但这似乎并没有工作。
HTML:
<div id="top_bar">
<div id="top_inner">
<div id="logo"> <a href="http://www.edosbornephotography.com"><img src="images/logo.gif" alt="Ed Osborne" width="220" height="100" class="logo"></a></div>
<div class="nav">
<ul class = "menu" >
<li> <a href = "#" > Home </a> </li>
<li><a href = "#" > Tutorials </a>
<ul class = "submenu" >
<li> <a href = "#" > CSS </a> </li>
<li> <a href = "#"> Javascript </a> </li>
<li> <a href = "#" > jQuery </a> </li>
<li> <a href = "#"> HTML </a> </li>
<li> <a href = "#" > PHP </a> </li>
</ul>
</li>
CSS:
.nav {
margin: 0 auto;
position: relative;
padding-top: 85px;
}
ul.menu {
list-style: none;
padding: 0 22px;
margin: 0;
float: left;
background: #222;
font-size: 1.2em;
background: url(../images/topnav_bg.gif) repeat-x;
}
ul.menu li {
float: left;
margin: 0;
padding: 0 15px 0 0;
position: relative;
}
ul.menu li ul.submenu {
list-style: none;
position: absolute;
left: 0; top: 35px;
background: #333;
margin: 0; padding: 0;
display: none;
float: left;
width: 170px;
-moz-border-radius-bottomleft: 5px;
-moz-border-radius-bottomright: 5px;
-webkit-border-bottom-left-radius: 5px;
-webkit-border-bottom-right-radius: 5px;
border: 1px solid #111;
}
ul.menu li ul.submenu li{
margin: 0; padding: 0;
border-top: 1px solid #252525;
border-bottom: 1px solid #444;
clear: both;
width: 170px;
}
html ul.menu li ul.submenu li a {
float: left;
width: 145px;
background: #333 url(../images/dropdown_linkbg.gif) no-repeat 10px center;
padding-left: 20px;
}
答
你需要
ul.menu li ul.submenu {
z-index: 5000; // <-- ADD THIS
list-style: none;
position: absolute;
left: 0; top: 35px;
background: #333;
margin: 0; padding: 0;
display: none;
float: left;
width: 170px;
-moz-border-radius-bottomleft: 5px;
-moz-border-radius-bottomright: 5px;
-webkit-border-bottom-left-radius: 5px;
-webkit-border-bottom-right-radius: 5px;
border: 1px solid #111;
}
----编辑根据您的评论使用Z-指数在子菜单标签以下----
等待 - 我认为我们根据您的评论误导了您 - 您希望子菜单向上移动,以便它位于现有菜单的上方? (相对于页面上的内容上面?)如果是这样,你需要做的子菜单上的这样一个负的margin-top:
ul.submenu {
margin-top:-2em; // adjust me (use 'em' to scale w/ font size adjustments)
}
需要“的立场:绝对的;”对于这个工作,但你已经有这个类在你的CSS
答
我相信答案是z-索引,但z-索引只适用于positoned元素。如果添加
ul.menu li ul.submenu {
z-index: 5000;
position: relative;
它shoukd工作}
谢谢你,但它没有出现工作 – user1278496
也许不是你的问题在这里,但不使用属性name = value对之间的空格。 IE 应该读 – jtheman
好吧,但是什么原因呢? – user1278496