默认情况下,在某些设置中,元素之间似乎存在4px差距(参见示例),它为什么会存在?我怀疑如果修好它会有什么不好的影响。
使用flex-box解决了这个问题,但我仍然不知道它为什么存在,以及它是在加载时生成的还是用JavaScript创建的元素之间的区别。
for(var i = 0; i < 8; i++) {
$(".js").append('<div class="box"></div>');
}
body {
font-family: sans-serif;
}
body > div {
width: 440px;
padding: 10px;
background-color: #eee;
}
body > div .box {
width: 100px;
height: 100px;
background-color: #000;
margin: 0px;
box-shadow:inset 0 0 0 1px #000,inset 0 0 12px 0 #fff;
}
body > div.inline-block .box {
display: inline-block;
}
body > div.inline .box {
display: inline;
}
body > div.flex-wrap {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<h2>Block</h2>
<p>4px gap not present.</p>
<div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
<h2>Inline-Block</h2>
<p>4px gap present.</p>
<div class="inline-block">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
<h2>Inline</h2>
<p>4px gap present.</p>
<div class="inline-block">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
<h2>Flex with wrap</h2>
<p><i>What I normally use so this problem isn't much of an issue for me anyway.</i></p>
<p>4px gap not present.</p>
<div class="flex-wrap">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
<h2>Populating with JS with Inline-block</h2>
<p>4px gap present only in the y direction.</p>
<div class="js inline-block">
</div>
发布于 2017-02-19 08:03:20
内联/内联块元素之间的空白保留在布局中。若要删除它,请删除元素之间的实际空格,在元素之间放置HTML注释以删除空白,或将父元素的字体大小更改为0,然后在需要时重置子元素中的字体大小。
您也可以在更传统的内联元素(如span)中看到相同的空间,如果您使用过它们,您可能会看到它们。
<span>one</span> <span>two</span> <span>three</span>
<br>
<span>no</span><span>space</span>
<br>
<span>no</span><! --><span>space</span>
https://stackoverflow.com/questions/42329439
复制