题目 21-题目 25
21.相邻的两个 inline-block 节点为什么会出现间隔,该如何解决 ?
元素被当成行内元素排版的时候,元素之间的空白符(空格、回车换行等)都会被浏览器处理,根据 white-space 的处理方式(默认是 normal,合并多余空白),原来 HTML 代码中的回车换行被转成一个空白符,在字体不为 0 的情况下,空白符占据一定宽度,所以 inline-block 的元素之间就出现了空隙。这些元素之间的间距会随着字体的大小而变化,当行内元素 font-size:16px 时,间距为 8px。
移除空格
元素间留白间距出现的原因就是标签段之间的空格,因此,去掉 HTML 中的空格,自然间距就木有了。考虑到代码可读性,显然连成一行的写法是不可取的,我们可以:
测试代码
<div class="space"><a href="##"> 惆怅</a><a href="##"> 淡定</a><a href="##"> 热血</a></div>
使用 margin 负值
测试代码
.space a {
display: inline-block;
margin-right: -4px;
}
使用 letter-spacing
测试代码
.space {
letter-spacing: -4px;
}
在父级元素中用 font-size:0;
测试代码
.space {
font-size: 0;
}