img元素间空白的解决方法
为了做滚动的幻灯片,需要把图片一张张接起来,然后再逐张呈现,可是排列好后,每两张图中间出现了空白(padding,margin已经都是0),而且宽度不可知,这样用js来写动画的时候显然不好判断,于是google之,得到下面的解决办法,结合本人实际情况备注如下:
1、将图片转换为块级对像
即,设置img为:
display:block;
在本例中添加一组CSS代码:
#sub img {display:block;}
笔记:我的图片既然每张拼接在一起,那就不能用这个方法了
2、设置图片的垂直对齐方式
即设置图片的vertical-align属性为「top,text-top,bottom,text-bottom」也可以解决。如本例中增加一组CSS代码:
#sub img {vertical-align:top;}
笔记:我的代码中失效
3、设置父对象的文字大小为0px
即,在#sub中添加一行:font-size:0;可以解决问题。但这也引发了新的问题,在父对像中的文字都无法显示。就算文字部分被子对像括起来,设置子对像文字大小依然可以显示,但在CSS效验的时候会提示文字过小的错误。
笔记:我选择了这种方法
4、改变父对象的属性
如果父对象的宽、高固定,图片大小随父对像而定,那麽可以设置:overflow:hidden;来解决。如本例中可以向#sub中添加以下代码:width:88px;height:31px;overflow:hidden;
笔记:在我的例子中正好父容器必须是over:visible的,未测试
5、设置图片的浮动属性
即在本例中增加一行CSS代码:#sub img {float:left;}如果要实现图文混排,这种方法是很好的选择。
笔记:这个肯定是可以的,但如果之前你没有float:left,显然你要去重新写一些css
6、取消图片标签和其父对象的最後一个结束标签之间的空格。
这个方法要强调下,在实际开发中该方法可能会出乱子,因为在写代码的时候为了让代码更体现语义和层次清晰,难免要通过IDE提供代码缩进显示,这必然 会让标签和其他标签换行显示,比如说DW的「套用源格式」命令。所以说这个方法可以供我们了解出现BUG的一种情况,具体解决方案的还得各位见招拆招了。
笔记:最笨的办法,而且只能解决IDE的空格引起的空白,不是浏览器强行解释的空白
补充:我选择的使父元素font-size为0,有使父元素直接的text消失的危险,而且还是出现了一到两个像素的空白,最后发现还是第6条解决了我的问题。。。