我已经创建了一个我正在创建的网站的下拉菜单,我觉得它很好看,尽管水平导航栏和垂直下拉栏之间有一个px空间。当您将鼠标悬停在空间上时,垂直菜单会再次消失,因为您有时将鼠标放在一个px空间上,这对用户来说非常困惑。
这是我的HTML;
<div class="nav">
<div class="links">
<ul id="dropdown">
<li class="currentpage">
<a href="index.html"> Tetterode </a>
<ul>
<li><a href="project.html">Project</a></li>
<li><a href="promenade.html">Promenade</a></li>
<li><a href="brochure.html">Brochure</a></li>
<li><a href="impressies.html">Impressies</a></li>
</ul>
</li>
<li>
<a href="">Woningen</a>
<ul>
<li><a href="oplevering.html">Oplevering</a></li>
<li><a href="impressies.html">Impressies</a></li>
<li><a href="kavelkaart.html">Kavelkaart</a></li>
</ul>
</li>
<li>
<a href="">Locatie</a>
<ul>
<li><a href="ligging.html">Ligging</a></li>
<li><a href="routeplanner.html">Routplanner</a></li>
<li><a href="situatie.html">Situatie</a></li>
</ul>
</li>
<li>
<a href="">Financiering</a>
<ul>
<li><a href="hypotheken.html">Hypotheken</a></li>
<li><a href="fiscaal.html">Fiscale mogelijkheden</a></li>
</ul>
</li>
<li>
<a href="">Contact</a>
<ul>
<li><a href="makelaars.html">Makelaars</a></li>
<li><a href="gegevens.html">Gegevens</a></li>
</ul>
</li>
</ul>
</div>
</div>
这是我的CSS;
.nav{
width: 100%;
height:50px;
background-image:url("bg.jpg");
background-repeat:repeat;
text-align:center;
padding-bottom:0px;
margin-bottom:0px;
}
.links ul li {
list-style-type: none;
padding-right: 17px;
height:50px;
position:relative;
display:inline-block;
padding-top:0px;
line-height:50px;
padding-left:17px;
text-shadow: 3px 3px 2px rgba(0, 0, 0, 0.50);
margin-top:0px;
}
.links ul li:hover {
height:50px;
background-color:#b2071a;
display:inline-block;
margin:0px;
}
.links a {
text-transform:uppercase;
font-family:helvetica;
font-size:18px;
color:#fff;
display:inline-block;
font-size:20px;
text-decoration:none;
}
.links a:hover {
background-color:transparent;
}
#dropdown ul{
background-color:#b2071a;
list-style:none;
position:absolute;
left:-9999px;
z-index:20;
font-size:16px;
padding-top:0px;
margin-top:0px;
}
#dropdown ul li{
float:none;
}
#dropdown ul a{
white-space:nowrap;
font-size:16px;
}
#dropdown li:hover ul{
left:0;
}
#dropdown li:hover a{
text-decoration:underline;
}
#dropdown li:hover ul a{
text-decoration:none;
}
#dropdown li:hover ul li a:hover{
color:#000;
}
.currentpage{
height:50px;
background-color:#b2071a;
display:inline-block;
}
我没有看到任何导致1像素空间的边距/填充,我不知道如何解决这个问题。我希望有人可以帮助我,谢谢。
答案 0 :(得分:1)
您的代码和样式表非常好,易于阅读和遵循。
解决方案是将#dropdown ul
的上边距调整为-2px
,如下所示:
#dropdown ul{
background-color:#b2071a;
list-style:none;
position:absolute;
left:-9999px;
z-index:20;
font-size:16px;
padding-top:0px;
margin-top:-2px;
}
允许负边距并且非常有用。您遇到的问题在下拉菜单中很常见,此修复程序是典型的。
供参考,请参阅小提琴:http://jsfiddle.net/audetwebdesign/Ygn6X/