或者,您现在应该使用flexbox来实现许多以前可能使用内联块的布局:https://css-tricks.com/snippets/css/a-guide-to-flexbox/
因为这个答案已经变得相当流行,所以我重新写了一遍。
我们不要忘记被问到的实际问题:
如何删除内联块元素之间的空间?我希望
一个CSS解决方案,不需要HTML源代码
篡改。单靠CSS就能解决这个问题吗?
仅用CSS就可以解决这个问题,但是还没有完全健壮的CSS补丁。
在最初的答案中,我的解决方案是向父元素添加font-size: 0,然后在子元素上声明合理的字体大小。
http://jsfiddle.net/thirtydot/dGHFV/1361/
这适用于所有现代浏览器的最新版本。它适用于IE8。它不能在Safari 5中运行,但可以在Safari 6中运行。Safari 5几乎是一个死浏览器(2015年8月,0.33%)。
大多数相对字体大小可能出现的问题都不难解决。
然而,如果你特别需要一个CSS的修复,这是一个合理的解决方案,如果你可以自由地改变你的HTML(像我们大多数人一样),我不建议你这样做。
这是我,作为一个相当有经验的web开发人员,实际上所做的解决这个问题:
<p>
<span>Foo</span><span>Bar</span>
</p>
是的,没错。我删除了HTML中内联块元素之间的空白。
很容易。这很简单。它在任何地方都适用。这是务实的解决方案。
有时确实需要仔细考虑空格从何而来。用JavaScript追加另一个元素会添加空格吗?不,如果你做得好就不会。
让我们开始一段神奇的旅程,用不同的方法删除空白,使用一些新的HTML:
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
你可以这样做,就像我经常做的那样:
< ul >
<li>第1项</li><li>第2项</li><li>第3项</li>
< / ul >
http://jsfiddle.net/thirtydot/dGHFV/1362/
或者,这个:
<德>
< li >项目1 < / li
> < li >项目2 < / li
> < li > 3 < / li >项目
< /德>
或者,使用组合:
<德>
< li >项目1 < / li > < !--
——> < li >项目2 < / li > < !--
项目——> < li > 3 < / li >
< /德>
或者,如果你用的是PHP或类似的方法:
<德>
< li >项目1 < / li > < ?
? > < li >项目2 < / li > < ?
? > < li > 3 < / li >项目
< /德>
或者,你甚至可以跳过完全关闭的标签:
<德>
< li >项目1
< li >项目2
< li >项目3
< /德>
现在我已经讲了“一千种不同的方法来删除空白,通过三十点”,希望你已经忘记了所有的字体大小:0。