如何移除相邻两个 display: inline-block 元素间的间隔

HTML 如下:

<p>
    <span>hello</span>
    <span>world</span>
</p>

CSS 代码:

span { 
    display:inline-block;
    width:100px;
    background:#36c;
    color:#fff;
    font-size:30px;
    text-align:center;
}

在页面上他们之间会有一个空格的间隔,我知道只要移除他们之间的空格就显示正常了:

<p>
    <span>hello</span><span>world</span>
</p>

但我想知道如何在不修改 HTML、不使用 JS 的情况下,有没有通过修改 CSS 来解决的方法?

阅读 9.3k
2 个回答

这个原因跟字体类型和大小有关系。
雅虎 YUI 的解决方法是把letter-spacingword-spacing改成某个负值能解决(不同的字体值不同),ytzong 给了个一劳永逸的解决方法,直接写成 -.5em 或者更大 http://www.99css.com/archives/690

.span {
    letter-spacing: -.5em; /* webkit: collapse white-space between units */
    *letter-spacing: normal; /* reset IE < 8 */
    word-spacing: -.5em; /* IE < 8 && gecko: collapse white-space between units */
}

我个人更喜欢通过修改父元素的字体大小,将大小设置为font-size: 0来解决:

p {
    font-size: 0;
}

移除代码之间的空白、换行 这样不行吗?

<p><span>hello</span><span>world</span></p>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏