码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-03-10 12:10:05      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:html5   css   布局   

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>




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

标签:html5   css   布局   

原文地址:http://blog.csdn.net/cicixujing/article/details/44172121

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!