【发布时间】:2011-06-25 12:58:46
【问题描述】:
我有以下 HTML:
<ul>
<li>
<div>first</div>
</li>
<li>
<div>first</div>
</li>
<li>
<div>first</div>
</li>
<li>
<div>first</div>
</li>
</ul>
以及以下css规则:
ul {
padding: 0;
border: solid 1px #000;
}
li {
display:inline-block;
padding: 10px;
width: 114px;
border: solid 1px #f00;
margin: 0;
}
li div {
background-color: #000;
width: 114px;
height: 114px;
color: #fff;
font-size: 18px;
}
由于某种奇怪的原因,列表项在 Firefox 和 Chrome 中都出现在它们周围的边距。看萤火虫,列表项根本没有任何边距,但它们之间似乎有一个空白空间。
如果我稍后使用
通过 javascript 添加更多列表项$('<li><div>added via js</div></li>').appendTo($('ul'));
“边距”不会出现在新元素周围:
知道这里到底发生了什么吗?
【问题讨论】:
-
为什么不使用
margin-right: -4px;有什么不应该工作的原因吗? -
负边距取决于字体大小和使用的字体。
-
似乎很多类似的问题都因为这个问题的重复而被关闭,所以一个有用的 Chris Coyier 链接对未来的访问者:css-tricks.com/fighting-the-space-between-inline-block-elements