inline-block元素的空隙与解决方法

Posted Nicholas1729

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了inline-block元素的空隙与解决方法相关的知识,希望对你有一定的参考价值。

多次遇到了使用inline-block后留下间隙的问题,所以记录一下,以提醒自己以后留意这点。


现象描述:

    使用display:inlie-block后和一些行内元素都有此现象如:<a> <img><input>等标签元素

<div class="space">
    <p></p>
    <p></p>
    <p></p>
</div>
.space p{
    display: inline-block;
    width: 50px;
    height: 50px;
    background-color: green;
    margin:0;//无效
}


 

那没我们该如何解决呢?方法是很多的。可以参考大神的解决方法:http://www.zhangxinxu.com/wordpress/2012/04/inline-block-space-remove-%E5%8E%BB%E9%99%A4%E9%97%B4%E8%B7%9D/ 。以下方法是我对此博客的提炼。

方法一

  间隙产生的原因是html的换行空格,所以可以直接取消换行即可。但是这样是降低代码的可读性,另外可以用注释来占位

 

方法二

  设置margin为负值,margin负值的大小与上下文的字体和文字大小相关。貌似计算值有点麻烦,且未知外部环境,故不适合大规模使用。

方法三

  好奇怪的方法,不过真的可以。

<div class="space">
    <p>
    <p>
    <p></p>
</div>

 

方法四

  在父元素设置font-size:0, 新的Chrome也可以完美解决,容易造成字体大小混乱,谨慎使用。<img>元素下可以使用

方法五

  使用letter-spacing,字符间距,负值设置过大文字重叠或被遮挡。

方法六

  使用word-spacing, 单词间距,Chrome下负值设置过大会使宽高缩小。

更多方法可以查看:http://www.zhangxinxu.com/wordpress/2012/04/inline-block-space-remove-%E5%8E%BB%E9%99%A4%E9%97%B4%E8%B7%9D/。其中博主的方法八我没看懂,故不作记录。

以上是关于inline-block元素的空隙与解决方法的主要内容,如果未能解决你的问题,请参考以下文章

解决display:inline-block;行内块元素出现空白空隙问题

inline-block清除空隙2

display为inline-block的元素中间有间隙的原因和解决办法

解决inline-block元素的3个 bug

inline-block空隙问题

内联元素inline-block空隙问题