去除 inline-block 元素间距

案例重现

布局时经常能发现inline元素和inline-block元素水平呈现的元素间,会存在着一些意想不到的间距,举例:

.inline-block {
  display: inline-block;
  background-color: green;
  color: #FFF;
}
<div class="content">
  <div class="inline-block">
    测试
  </div>
  <div class="inline-block">
    测试
  </div>
</div>

由于换行和空格分割符的存在,行内元素间将被渲染为一个小间距了。

解决办法1-元素间移除空格和换行

<div class="inline-block">
一个</div><div class="inline-block">
测试</div>

这样看着仍旧不太舒服,尤其是项目里缩进层级深的时候

解决办法2-父元素设置 font-size:0

.content {
  font-size: 0;
  -webkit-text-size-adjust: none;
}

-webkit-text-size-adjust:none;,为了兼容旧版 chrome 对于字体大小的限制的。

此方法基本上可以解决大部分浏览器下的兼容情况,IE7 可能存在 1 像素的间距 bug。这个方法算是最好用了。

解决办法3-flex

.content {
  display: flex
}

也能解决,只不过引入了 flex 可能会干扰原本的布局。

解决办法4-float

.inline-block {
  display: inline-block;
  background-color: green;
  color: #FFF;
  float: left;
}

也能解决,只不过引入了 float 可能会干扰原本的布局。

posted @ 2020-03-14 18:54  Ever-Lose  阅读(181)  评论(0编辑  收藏  举报