导航下拉菜单问题

时间:2014-10-12 14:18:17

标签: html css nav html.dropdownlistfor

我的导航设备出现问题,当您将鼠标悬停在"匹配"时,我会尝试创建一个下拉菜单。链接。每次我将鼠标悬停在链接上时,列表将保留在所述链接下方并破坏导航栏的外观。任何帮助将不胜感激

HTML

<nav>
    <span class= "navbar-button"></span>
    <ul class="navbar">
        <li><a href="index.html">Home</a></li>
        <li><a href="#">Gallery</a></li>
        <li><a href="#">Match</a>
            <ul>
                <li><a href="#">City</a></li>
                <li><a href="#">Coastal</a></li>
                <li><a href="#">Rural</a></li>
            </ul>
        </li>
    </ul>
</nav>

CSS

body{
padding: 0;
margin: 0;
font-family: 'main';
}

.navbar {
list-style: none;
background-color: #333;
color: #fff;
margin: 0;
text-align: center;
}

.navbar > li {
display: inline-block;
padding: 1.3% 2%;

}

.navbar > li:hover {
background-color: #585858;

}

.navbar > li > a{
text-decoration: none;
font-size: 30px;
color: #fff;

}

.navbar li ul {
display: none;
}

.navbar li:hover ul{
display: block;

}

2 个答案:

答案 0 :(得分:0)

你需要使用absolute定位将其从容器中分离出来,这样它就不会破坏其余的元素:

.navbar li ul {
  position: absolute; 
  display: none;
  background-color: #333;
  margin: 0;
  text-align: center;
  padding: 20px;
}

务必将其父级设为position: relative,否则body将成为其容器:

.navbar > li {
  position: relative;
  display: inline-block;
  padding: 1.3% 2%;
}

JSFIDDLE

答案 1 :(得分:0)

将位置绝对添加到:.navbar li ul