空白。
如果你不是这个:
<header id="header">
<section id="logo">
<!--<img data-gif="data.gif" data-png="data.png" src="logo.svg" />-->
</section>
<section id="input">
<input id="searchInput" type="text" name="search" autocomplete="off" />
</section>
</header>
做这个:
<header id="header">
<section id="logo">
<!--<img data-gif="data.gif" data-png="data.png" src="logo.svg" />-->
</section><section id="input">
<input id="searchInput" type="text" name="search" autocomplete="off" />
</section>
</header>
它并排显示就好了。请参阅jsfiddle 中的证明。
这种对空格的处理是标准布局和内联内容的副产品 - 如果您改用浮点数,就像在另一个答案中回答的那样,空格应该不会产生影响。这是 HTML/CSS 的一个特性。也有其他讨论过相同的线程。
所以简而言之,有两种方法可以解决这个问题:
- 摆脱你的内联块元素之间的空白
- 切换到使用 float:left 而不是 inline-block 用于#input、#logo