注意:以下效果用行内块元素展示,实际所有行内元素间都会存在类似的缝隙问题
1. 效果展示
<style>
div{
display: inline-block;
background-color: cornflowerblue;
}
</style>
<div >我是行内块1</div>
<div >我是行内块2</div>
<div >我是行内块3</div>
可以看到行元素(包括行内块元素)之间有个小缝隙。
2. 产生原因
元素被当成行内元素排版的时候,元素之间的空白符(空格、回车换行等)都会被浏览器处理,根据white-space的处理方式(默认是normal,合并多余空白),原来HTML代码中的回车换行被转成一个空白符,所以元素之间就出现了空隙。这些元素之间的间距会随着字体的大小而变化,当行内元素font-size:16px时,间距为8px。
3. 解决方案
根据产生该问题的原因,当我们把上述例子的三个div写在一行那么间隙问题就会消失,但是写成一行难免影响代码的可读性以及优雅度。下面介绍几种其他比较方便的解决方法:
(1)父元素设置font-size为0,子元素单独再设置字体大小。
<div style="font-size: 0">
<div style="font-size: 16px">我是行内块1</div>
<div style="font-size: 16px">我是行内块2</div>
</div>