我希望有几个块元素彼此相邻,它们采用完整的浏览器宽度.
有了white-space: nowrap它,它工作得很好,但在一个元素和另一个元素之间有一些像素的随机空间:
body { margin: 0; padding: 0; }
#container1 { white-space: nowrap; position: absolute; width: 100%; }
#container1 div { display: inline-block; width: 100%; height: 200px; }
Run Code Online (Sandbox Code Playgroud)
<div id="container1">
<div style="background: red;"></div>
<div style="background: yellow;"></div>
<div style="background: green;"></div>
<div style="background: blue;"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
这是jsBin演示.
它没有填充,没有边距,没有边框,没有偏移.
这是因为内联(-block)元素之间的空格字符(换行符和几个选项卡计为空格),这可以通过以这种方式注释该空格来修复:
<div style="background: red;"></div><!--
--><div style="background: yellow;"></div><!--
--><div style="background: green;"></div><!--
--><div style="background: blue;"></div>
Run Code Online (Sandbox Code Playgroud)
在线演示.
实际上,它不是一个bug,它是内联元素的正常行为; 就像将图像放在一行文本旁边,或者在输入元素旁边放一个按钮一样.
有几种方法可以删除内联(-block)元素之间的空格:
检查Chris Coyier的文章,或关于SO的这些类似主题: