两个div之间的神秘空间

时间:2014-08-26 11:29:13

标签: html css

我正在创建一个触摸事件发生时显示的HTML导航菜单。

在打开/关闭菜单和菜单列表的按钮之间是一个我无法摆脱的差距,甚至可以解决它为什么会在那里!

奇怪的是(对我而言)如果我在包含块<div id="navContent"/>的菜单列表中添加1px边框,则间隙消失。

我已在以下网址http://jsfiddle.net/ufvmj4n9/

中将CSS和HTML问题的演示放入jsfiddle
#container {
    position:relative;
    top: 0px;
    width:100%;
    height:100%;
}
#mobileMenuBtn {
    display: block;
    position: relative;
    opacity: 0;
    width:290px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 0px;
    background-color:#00F;
    height:23px;
}
#navContainer {
    display:block;
    position: absolute;
    top:95px;
    width:100%;
    height:auto;
}
#navContent {
    /*border:1px solid green;*/
    position:relative;
    top:0px;
    height:350px;
    width:290px;
    margin-left: auto;
    margin-right: auto;
    background-color: rgba(51,102,204,0.8);
}
#navList {
    position:relative;
    top:30px;
    list-style-type: none;
    width:100%;
    margin-left: 30px;
    text-align: left;
    padding:0;
}
.navText {
    position: inherit;
    display: list-item;
    left:0px;
    font-family: Verdana, "Trebuchet MS", Arial;
    font-size: 1.1em;
    font-weight: normal;
    color: #FFF;
    margin-bottom:30px;
    outline: none;
    text-align: left;
}
nav a {
    text-decoration: none;
}


<div id="container">
    <nav id="navContainer">
        <div id="mobileMenuBtn" style="opacity: 1;"></div>
        <div id="navContent">
            <ul id="navList">
                <li><a class="navText selectDisable" id="navItem5" tabindex="0" data-name="home">home</a></li>
                <li><a class="navText selectDisable" id="navItem4" tabindex="1" data-name="solutions">solutions</a></li>
                <li><a class="navText selectDisable" id="navItem3" tabindex="2" data-name="experience">experience</a></li>
                <li><a class="navText selectDisable" id="navItem2" tabindex="3" data-name="equipment">equipment</a></li>
                <li><a class="navText selectDisable" id="navItem1" tabindex="4" data-name="training">training</a></li>
                <li><a class="navText selectDisable" id="navItem0" tabindex="5" data-name="contact">contact</a></li>
            </ul>
        </div>
    </nav>
</div>

我首先想知道为什么这个差距存在,因为我无法找到与之相关的保证金(我使用过Chrome和Safari开发者工具)。其次,如何最好地删除它(我假设(希望)没有应用于元素id&#34; navContent&#34;)的否定&#39; top&#39;值。

提前感谢您的帮助。

d

2 个答案:

答案 0 :(得分:6)

您忘了将ul默认样式清零:

#navList { margin-top: 0; }
祝你好运!

答案 1 :(得分:2)

ul将保留默认的保证金值1em。你必须把它变为零。

试试这个

#navList{ 
   margin: 0; 
}

<强> DEMO