我有三个并排水平堆叠的 div,这些 div 设置为 display: inline-block。但是,我注意到即使使用某种 CSS 重置,它们之间也会产生 4px 的小距离?为什么会出现这种情况?有没有办法在全球范围内摆脱这种情况,还是我只需要将 div 移到左侧 -4px?
问问题
38121 次
5 回答
14
假设这是因为每个结束标记后的换行符。这些在 HTML 中作为空格处理。尝试删除它们。这里有几个演示:
http://jsfiddle.net/eeRFC/ - 带空格
<div>test</div>
<div>test</div>
<div>test</div>
http://jsfiddle.net/eeRFC/1/ - 没有空格
<div>test
</div><div>test
</div><div>test
</div>
和常见的 CSS:
div {
border:solid 1px black;
display:inline-block;
}
于 2013-01-09T16:30:11.633 回答
8
去掉前一个 div 结尾和下一个 div 开头之间的新行 例如替换以下内容:
<div id="div1">
Div Item 1
</div>
<div id="div2">
Div Item 2
</div>
和
<div id="div1">
Div Item 1
</div><div id="div2">
Div Item 2
</div>
于 2013-01-09T16:31:05.277 回答
5
使用其中一个float:left
或display:inline-block
将工作。请参阅此处的工作示例链接。
于 2013-01-09T16:37:27.910 回答
2
您的 HTML 中的 div 之间很可能有换行符,对吗?如果 div 之间有任何分隔符,则浏览器将在它们之间显示空格。
以下示例在 div 之间有空格:
<style>
* {
margin: 0;
border: 1px solid black;
}
div {
display: inline-block;
}
</style>
<div>
Div1
</div>
<div>
Div2
</div>
<div>
Div3
</div>
有两种方法可以用来删除 div 之间的空格。要么像这样去掉 div 元素之间的分隔符:
<div>
Div1
</div><div>
Div2
</div><div>
Div3
</div>
或者让你的 divs 浮动元素:
...
div {
display: inline-block;
float: left;
}
...
希望有帮助!
编辑:
另请参阅相关的 SO 问题:如何阻止新行在 HTML 中的列表项之间添加空格
于 2013-01-09T16:42:35.973 回答