inline-block横向排列元素间隔原因及去除间隔方法

本文介绍了在HTML布局中,使用inline-block属性横向排列元素时遇到的间隔问题。当元素之间存在换行或空格,会导致间距出现。解决方法是通过设置父容器的font-size为0来消除间隔,并利用padding和box-sizing属性实现元素间的间距。示例代码展示了如何正确布局三个img元素,使其并排显示并保持固定间隔。

1.问题出现的场景:


需要实现上面的布局,三张图横向排列,左图靠左,右图靠右,中间图居于中间,且图与图之间有固定间隔,起初通过如下方式实现(为了说明方便,直接通过内联样式表现):

<div style="width:100%;overflow:auto;">

<div style="width:32%;float:left"><img style="width:100%" src=" "/></div>

<div style="width:32%;margin-left:34%"><img style="width:100%" src=""/></div>  

<div style="width:32%;float:right"><img style="width:100%" src=" "/></div>   

</div>

该实现方式,通过float来控制左右两侧图靠两边停放,中间图通过计算三张图总宽96%,剩余4%,这4%需要分为两部分来实现与左右两边图之间的间距,因此,对中间图通过margin-left:34%来控制其与左右两边图的间距为2%

2.不想通过float来实现,想通过控制每个img的容器div宽度为33.33333%来平分宽度,同时控制该容器具有padding值来达到中间图和两边图的间距,即:

<div style="width:100%">

<div style="width:33.33333%;display:inline-block;"><img style="width:100%" src=" "/></div>

<div style="width:33.33333%;display:inline-block;"><img style="width:100%" src=" "/></div>

<div style="width:33.33333%;display:inline-block;"><img style="width:100%" src=" "/></div>

</div>

这样实现后,发现三个img的容器div没有设置任何margin和padding,可是图片不能放在一行显示,第三个图被挤到第二行,且图和图之间是有间隔的,经过上网查找原因及解决方法,发现真正意义上的inline-block水平呈现的元素间,换行显示或空格分隔的情况下会有间距,最终使用了给最外部父容器设置font-size:0的方法来去除inline-block排列之间的间隔,同时空过属性padding和border-box来实现间距,最终实现方式为如下:

<div style="width:100%;font-size:0;">

<div style="width:33.33333%;display:inline-block;padding:2px;box-sizing:border-box"><img style="width:100%" src=" "/></div>

<div style="width:33.33333%;display:inline-block;padding:2px;box-sizing:border-box"><img style="width:100%" src=" "/></div>

<div style="width:33.33333%;display:inline-block;padding:2px;box-sizing:border-box"><img style="width:100%" src=" "/></div>

</div>




评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值