两张图片之间的间隙——display中的inline属性

现象

相信不少人都遇到过两张img中间那条可恶的间隙吧,

直接上例子:

HTML:

<div>
    <img src="images/img (1).jpg" alt="">
    <img src="images/img (2).jpg" alt="">
    <img src="images/img (3).jpg" alt="">
</div>

 CSS:

    *{
        margin: 0;
        padding: 0;
    }
    body{
        background-color: #000;
    }
    img{
        width:350px;
    }

显示结果: 

 

解决

造成这个间隙存在的直接原因是:代码中<img>标签之间存在换行。我们知道HTML中,特殊情况除外,元素之间无论多少个空格和换行都会被执行成为一个空格。

解决方式页比较简单,将<img>标签写在一行,如:

<div>
    <img src="images/img (1).jpg" alt=""><img src="images/img (2).jpg" alt=""><img src="images/img (3).jpg" alt="">
</div>

结果:

 

当然,更多时候,特别是在实际开发应用中,我们可以不必理会这个间隙,也不用将连续的<img>标签写在一行内。这是因为,正式的开发项目都会有一个代码压缩的过程,这个过程会将我们的代码中多余的所有空格及换行完全去除,也就直接解决了这个问题。

 

原因

造成这一现象的根本原因是什么呢?是inline。

img标签的display属性的属性值为:inline-block,即常说的行级块元素(或者内联块元素等)。

我们试着将img的display属性改为inline:

    *{
        margin: 0;
        padding: 0;
    }
    body{
        background-color: #000;
    }
    img{
        width:350px;
        display: inline;
    }

 img标签仍然换行编写:

    <div>
        <img src="images/img (1).jpg" alt="">
        <img src="images/img (2).jpg" alt="">
        <img src="images/img (3).jpg" alt="">
    </div>

此时结果显示图片之间依旧有空隙:

img标签写在同一行: 

    <div>
        <img src="images/img (1).jpg" alt=""><img src="images/img (2).jpg" alt=""><img src="images/img (3).jpg" alt="">
    </div>

此时则没有了间隙:

 

这是由于:display属性的值中,带有inline的元素,都会具有inline的一个基本特性——文字特性。也就是说,display的值为inline或者inline-block的元素,都带有文字的部分特性。在这里即表现为:将每个img当成了一个汉字或者一个英文单词。

    <div>
        <img src="images/img (1).jpg" alt="">
        <img src="images/img (2).jpg" alt="">
        <img src="images/img (3).jpg" alt="">
        我
        是
        字
    </div>

 可见,img之间和文字之间的间隙都是一样的:

结语

连续的img之间出现空隙,其实是由img标签的display:inline-block引起,但它其实算不上一个bug,一般也不必理会它。

只是在日常开发过程中,需要注意其在本地调试时产生的影响。避免使用负margin等错误方式来调整,而最终导致上传服务器后出错的情况。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值