不需要 Space 在 <header> 和 <nav> 之间

Unwanted Space Between <header> and <nav>

我有以下 HTML5 代码:

<!doctype html>
<html>
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<style>
body {
  max-width: 960px;
  margin: 0 auto;
  font-size: 120%;
}
header, nav {
  margin: 0;
  padding: 0;
  border: 1px solid black;
}
header {
  border-color: red;
}
img.mainpicture {
  width: 100%;
  height: auto;
}
</style>
</head>
<body>
<header>
<img class="mainpicture" src="http://s29.postimg.org/ajjbb0n07/apic.jpg" alt="A picture"/></header><nav>Navigation area.</nav>
</body>
</html>

谁能解释一下为什么 <header><nav> 内容之间有大约 5 个像素的空白 space,我该如何删除它?

通过添加

header {
  padding-bottom: 1px;
}

到CSS文件,白色space的高度加长了一个像素,看来和<header>的padding没有关系.

编辑:我想不使用 <nav style="position: relative; top:-7px;">

可能是因为里面的元素有一个margin,是凸出来的!而且因为你有一个<img />,所以给它一个display: block;。为 headernav:

尝试 overflow: hidden;
header, nav {
  overflow: hidden;
}

header img {
  display: block;
}

只需添加

img.mainpicture{
.....................
.....................
vertical-align: top;
}

这将解决问题:)

在图像上设置显示块以解决拟合问题。

body {
  max-width: 960px;
  margin: 0 auto;
  font-size: 120%;
}
header,
nav {
  margin: 0;
  padding: 0;
  border: 1px solid black;
}
img.mainpicture {
  width: 100%;
  display: block;
}
<header>
  <img class="mainpicture" src="//lorempicsum.com/futurama/960/200/2" alt="A picture" />
</header>
<nav>
  Navigation area.
</nav>

将 属性 margin-bottom 设置为零。

margin-bottom: 0;