我一直遇到这个问题,我的CSS下拉菜单隐藏在我页面上的内容后面。我环顾四周,尝试使用Z-Index来指定它需要去的地方,我无法弄明白。我的所有内容都在div类" .wrapper"这就是导航线隐藏的背后。这是CSS:
nav {
margin: -75px 100px 20px 100px;
text-align: right;
position: relative;
z-index: 1000;
}
nav ul ul {
display: none;
}
nav ul li:hover > ul {
display: block;
position: absolute;
z-index: 1000;
}
nav ul {
background: #efefef;
background: linear-gradient(top, #D22525 0%, #5F1414 100%);
background: -moz-linear-gradient(top, #D22525 0%, #5F1414 100%);
background: -webkit-linear-gradient(top, #D22525 0%,#5F1414 100%);
box-shadow: 0px 0px 9px rgba(0,0,0,0.15);
padding: 0 20px;
border-radius: 10px;
list-style: none;
position: relative;
display: inline-table;
}
nav ul:after {
content: ""; clear: both; display: block;
}
nav ul li {
float: left;
}
nav ul li:hover {
background: #4b545f;
background: linear-gradient(top, #4f5964 0%, #5f6975 40%);
background: -moz-linear-gradient(top, #4f5964 0%, #5f6975 40%);
background: -webkit-linear-gradient(top, #4f5964 0%,#5f6975 40%);
}
nav ul li:hover a {
color: #fff;
}
nav ul li a {
display: block; padding: 25px 40px;
color: #FFF; text-decoration: none;
}
nav ul ul {
background: #5f6975; border-radius: 0px; padding: 0;
position: absolute; top: 100%;z-index: 1000;
}
nav ul ul li {
float: none;
border-top: 1px solid #6b727c;
border-bottom: 1px solid #575f6a; position: relative;
z-index: 1000;
}
nav ul ul li a {
padding: 15px 40px;
color: #fff;
}
nav ul ul li a:hover {
background: #4b545f;
}
nav ul ul ul {
position: absolute; left: 100%; top:0;
}
.wrapper
{
overflow: hidden;
padding: 0em 0em 5em 0em;
background: #FFF;
top: 150px;
position: absolute;
z-index: 0;
}
之后这是我的HTML:
<body>
<div id="header-wrapper">
<div id="header" class="container">
<div id="logo">
<h1></span><a href="/">HHS E3</a></h1>
</div>
<nav>
<ul>
<li><a href="/"><img src="/media/home.png" height="14px" /></a></li>
<li><a>Media</a>
<ul>
<li><a href="/media/videos">Videos</a></li>
<li><a href="/media/pictures">Pictures</a></li>
<li><a href="/media/music">Music</a></li>
</ul>
<li><a>Bullying</a>
<ul>
<li><a href="/bullying/harrassment">Harrassment</a></li>
<li><a href="/bullying/abuse">Abuse</a></li>
<li><a href="/bullying/mental">Mental Illness</a></li>
<li><a href="/bullying/dissability">Dissability</a></li>
<li><a href="/bullying/fun">For Fun</a></li>
</ul>
</li>
<li><a>About E3</a>
<ul>
<li><a href="/about/stories">Our Videos & Stories</a></li>
<li><a href="/about/presentations">Our Presentations</a></li>
</ul>
</li>
<li><a>About the Founders</a>
<ul>
<li><a href="/about/radio">Raider Radio</a></li>
<li><a href="/about/video">Video</a></li>
<li><a href="/about/info">Info</a></li>
<?php
if(empty($_SESSION['logged_in']))
{
} else {
echo "<li><a href='#'>User</a><ul><li><a href='/upload'>Upload</a></li><li><a href='/logout.php'>Logout</a></li></ul></li>";
}
?>
</ul>
</nav>
</div>
</div>
</div>
<div class="wrapper">
<div id="three-column" class="container">
如果有人对我需要解决的问题有任何想法,我将不胜感激。总的来说,下拉菜单可以工作,但只显示第一行,其余部分隐藏在包装器后面。我是否可能需要对id =&#34;三列&#34;做任何事情。或者类=&#34;容器&#34;谢谢!
PS:jsfiddle
答案 0 :(得分:1)
<强> Here's a fiddle! 强>
我做了三件事:
将float:left和float:right
分别添加到#logo
和Nav。这将把他们推向左右。
nav{
text-align: right;
position: relative;
z-index: 1000;
float:right;
display: inline-block;
float: right;
}
#logo{
display: inline-block;
float: left;
}
答案 1 :(得分:0)
试试这个fiddle
我使用了你的html和css并进行了以下更改:
position:relative
添加到nav ul li
top
nav ul ul
值更改为70px
醇>
希望这会对你有所帮助。
答案 2 :(得分:0)
我想对大家说谢谢。我在这里阅读了每一条评论和答案。但是,通过将基本上所有的答案放在一起,我抓住了一件事。我忘记在上面显示的代码中放置div id“header-wrapper”。在其中,就像一个用户所说,它有Overflow: Hidden
导航包含在那里。设置Overflow: Visible
后,我的问题已得到解决。再次感谢大家。