去除inline-block元素间的间距

时间:2022-05-28 23:01:52

一、现象描述

  真正意义上的inline-block水平呈现的元素间,换行显示或者空格隔开的情况下会有间距,这是因为浏览器在解析时,会将换行等读取成一个空格导致。

二、移出空格的方法

  ① 我们可以去掉元素之间的换行和空格,这样间距自然就没有了,但是这样会降低代码的可读性,不可取。

    <div>
<a href="">
链接1</a><a href="">
链接2</a><a href="">
链接3</a><a href="">
链接4</a>
</div> <div>
<a href="">链接1</a
><a href="">链接2</a
><a href="">链接3</a
><a href="">链接4</a>
</div> <div>
<a href="">链接1</a><!--
--><a href="">链接2</a><!--
--><a href="">链接3</a><!--
--><a href="">链接4</a>
</div>

  ② 使用margin负值,但是,由于外部的不确定因素,以及最后一个元素多出来的负margin值的问题,这个方法也不太可取。

<style>
a {
background: pink;
display: inline-block;
padding: .5em 1em;
margin: -3px;
}
</style>
<body>
<div>
<a href="">链接1</a>
<a href="">链接2</a>
<a href="">链接3</a>
<a href="">链接4</a>
</div>
</body>

  ③ 给父级设置font-size:0,然后再在子元素中设置我们的字体大小,这样也可以去掉元素间的间距。

<style>
div{
font-size: 0;
}
a{
font-size: 16px;
background: pink;
}
</style>
<div>
<a href="">链接1</a>
<a href="">链接2</a>
<a href="">链接3</a>
<a href="">链接4</a>
</div>

  ④ 删掉闭合标签。

    <div>
<a href="">链接1
<a href="">链接2
<a href="">链接3
<a href="">链接4
</div>

  ⑤ 使用letter-spacing。

<style>
div{
letter-spacing: -6px;
}
a{
letter-spacing: 0;
background: pink;
}
</style>
<div>
<a href="">链接1</a>
<a href="">链接2</a>
<a href="">链接3</a>
<a href="">链接4</a>
</div>

  ⑥ 使用word-spacing。

<style>
div{
word-spacing: -6px;
}
a{
word-spacing: 0;
background: pink;
}
</style>
<div>
<a href="">链接1</a>
<a href="">链接2</a>
<a href="">链接3</a>
<a href="">链接4</a>
</div>