去除inline-block元素间距的方法

现象描述

两个inline-block元素间有空格或有换行的情况下,会产生间距。

<div>
	<input type="text" />
	<input type="button" value="确认"/>
</div>


两个非inline-block元素通过CSS转换为inline-block元素,也会产生间距。

.link {
	text-decoration: none;
	padding: 5px;
	background-color: orange;
	display: inline-block;
}
<div class="content">
	<a href="#" class="link">首页</a>
	<a href="#" class="link">标签</a>
	<a href="#" class="link">分类</a>
</div>

解决方法

去除标签间的间隔

元素间出现间距的原因就是标签之间的空格,因此,去掉HTML中的空格,自然间距就没有了。考虑到代码可读性,显然连成一行的写法是不可取的,我们可以:

<div class="content">
	<a href="#" class="link">首页
	</a><a href="#" class="link">标签
	</a><a href="#" class="link">分类</a>
</div>

使用margin负值

.link {
	display: inline-block;
	margin-right: -5px;
}

margin负值的大小与上下文的字体和文字大小相关,不建议使用。

使用font-size: 0

.content {
	font-size: 0;
}
.link {
	font-size: 16px;
}

使用letter-spacing

.content {
	letter-spacing: -5px;
}
.link {
	letter-spacing: 0;
}

使用word-spacing

.content {
	word-spacing: -5px;
}
.link {
	word-spacing: 0;
}