Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 当显示内联块并水平堆叠时,如何消除div之间的空间?_Html_Css - Fatal编程技术网

Html 当显示内联块并水平堆叠时,如何消除div之间的空间?

Html 当显示内联块并水平堆叠时,如何消除div之间的空间?,html,css,Html,Css,我有三个并排水平堆叠的div,这些div被设置为display:inline block。然而,我注意到,即使使用某种CSS重置,它们也会在彼此之间产生4倍的小距离?为什么会发生这种情况?有没有一种方法可以从全局上避免这种情况发生,或者我只需要将div移到左侧-4px?假设这是因为每个结束标记后都有换行符。这些在HTML中作为空格处理。尝试移除它们。以下是一些演示: -带空格 <div>test</div> <div>test</div> <

我有三个并排水平堆叠的div,这些div被设置为display:inline block。然而,我注意到,即使使用某种CSS重置,它们也会在彼此之间产生4倍的小距离?为什么会发生这种情况?有没有一种方法可以从全局上避免这种情况发生,或者我只需要将div移到左侧-4px?

假设这是因为每个结束标记后都有换行符。这些在HTML中作为空格处理。尝试移除它们。以下是一些演示:

-带空格

<div>test</div>
<div>test</div>
<div>test</div>

这是因为浏览器将呈现DIV的内联,与单词一样,它们由空格分隔

空格的宽度由字体大小决定,因此一个简单的技巧是将包含元素的字体大小设置为0,然后在内联div中重置字体大小

#容器{字体大小:0;}
#container>div{font size:1rem;display:inline block;}
我已经在这篇文章中证明了这一点


更多信息,请看这里。

去掉上一个div结尾和下一个div开头之间的新行 例如,更换以下部件:

<div id="div1">
 Div Item 1
</div>
<div id="div2">
 Div Item 2
</div>

分区项目1
分区项目2


分区项目1
分区项目2

使用
float:left
display:inlineblock
都可以工作。请参考工作示例链接。

您的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>
希望有帮助

编辑:

另请参见相关的SO问题:

请展示一个使用您自己的HTML+CSS的示例。这与使用float和inline block的问题相同,就像使用两块石头杀死一只鸟一样。使用float,您将无法使用简单的文本对齐完美地将元素居中,这让我发疯!!谢谢你的解释。CSS对我来说并不经常有任何意义:)谢谢你在多年不理解它之后解释这一点
<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>
<style>
* {
    margin: 0;
    border: 1px solid black;
}

div {
    display: inline-block;
}
</style>

<div>
Div1
</div>

<div>
Div2
</div>

<div>
Div3
</div>
<div>
Div1
</div><div>
Div2
</div><div>
Div3
</div>
...
div {
    display: inline-block;
    float: left;
}
...