为什么此导航栏上方有空格

时间:2015-12-14 17:46:13

标签: html css

我想制作一个固定的导航栏。但现在菜单上方有空间。我尝试了任何我知道的解决方法,但它没有用。我在整个代码中搜索了一些创建空间的东西,但我找不到它。



#nav {
  position: fixed;
  text-align: center;
  font-size: 22px;
  background-color: #222222;
  margin: 0 auto;
  width: 100%;
}
#nav ul li a {
  color: #ccc;
  display: block;
  padding: 10px;
  text-decoration: none;
}
#nav ul {
  list-style-type: none;
  padding: 0;
  margin: 0;
  position: relative;
}
#nav ul li {
  display: inline-block;
}
#nav ul li:hover {
  background: #333333;
}
#nav ul li a:hover {
  text-shadow: 3px 2px 3px #333333;
  text-decoration: none;
  position: relative;
  bottom: 5px;
  color: #fdde00;
}
html,
body {
  height: 100%;
  width: 100%;
  padding: 0;
  margin: 0;
}

<div id="nav">
  <ul>
    <li><a href="#">Test</a></li>
    <li><a href="#">Test</a></li>
    <li><a href="#">Test</a></li>
    <li><a href="#">Test</a></li>
  </ul>
</div>

<div>
  <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui. orem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui. orem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam</p>
</div>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:8)

This behaviour is called collapsing margins. The gap at the top is created because the <p> element has a default margin.

3 workarounds :

  • remove the default margin on the p element with p{margin: 0;}
  • add top:0; to the .nav element
  • add overflow:hidden; to the second div

For more about how to prevent collapsing margins, see How to disable margin-collapsing?

答案 1 :(得分:5)

您可以将top:0;添加到已修复的nav元素中以解决此问题:

#nav {
    position: fixed;
    text-align: center;
    font-size: 22px;
    background-color: #222222;
    margin: 0 auto;
    width: 100%;
    top:0;
}

JSFiddle

答案 2 :(得分:0)

在你的css中改变这个:

#nav {
    position: fixed;
    text-align: center;
    font-size: 22px;
    background-color: #222222;
    margin: 0 auto;
    width: 100%;
    top:0;
}

#content{
    margin-top:50px;
}

这是你的html:

.....
</div>
<div id="content">
    <p>
    .....