inline-block产生空白间隙的问题 解决方法

当我们在对元素的display属性使用inline-block值时,会在元素间形成一定宽度的空白间距:原因通常情况下,多个连续的空白符会合并成一个空白符

<ul>
    <li>111</li>
    <li>222</li>
    <li>333</li>
    <li>444</li>
    <li>555</li>
</ul>

*{
        margin: 0;
        padding: 0;
    }
    ul{
        list-style: none;
    }
    li{
        display: inline-block;
        width: 100px;
        height: 100px;
        background: red;    
    }

在这里插入图片描述

解决方案:
1.从html结构入手

<ul>
    <li>111</li><li>222</li><li>333</li><li>444</li><li>555</li>
</ul>

2.设置父元素的font-size为0,在子元素重新设置字体大小

ie8,firefox,chrome 和 opera 浏览器下已经没有问题了,但是在 低版本safari 浏览器下还是有问题。


*{
        margin: 0;
        padding: 0;
    }
    ul{
        list-style: none;
        font-size: 0;
    }
    li{
        display: inline-block;
        width: 100px;
        height: 100px;
        background: red;
        font-size: 16px;    
    }
  1. 利用负margin-left(不推荐,具体负margin多少取决于字体的大小)
  2. 解决办法4 letter-spacing(字符边距):负值 or word-spacing(单词边距) 负值

Opera浏览器下有蛋疼的问题:最小间距1像素,然后,letter-spacing再小就还原了。然后,负值大小还是取决于字体。。。。

5.终极必杀:给父元素 设置font-size:0 ;letter-spacing:-3px ,子元素重新设置font-size

ul{
        list-style: none;
        font-size: 0;
        letter-spacing: -3px;
    }

参考:
如何解决使用inline-block引起的空白间隙的问题

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值