这个问题是我们前端在开发项目的过程中经常会遇到的BUG,只能说它是一个BUG!!!既然是BUG我们就来谈谈它的解决方法就好。不要刻意的去追求一些原理,img标签在浏览器解析的过程中不仅在IE6上显示出下方的空白,其实在其他浏览器中(包括高版本)都会出现这样的问题,只是在高版本浏览器中做测试的时候显示不出来罢了,但是用调试工具去做审查元素的过程中,你就会发现,图片IMG的父元素的蓝色内容区是大于图片的高度的。下面是几种解决的方法,可以选择合适的方法去用。
1、将图片转换为块级对象可去掉下边空白
即,设置img为:
display:block;
在本例中添加一组CSS代码:
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;
5、设置图片的浮动属性也可去掉空白
即在本例中增加一行CSS代码:
#sub img {float:left;}
如果要实现图文混排,这种方法是很好的选择。
6、取消图片标签和其父对象的最后一个结束标签之间的空格。
这个方法要强调下,在实际开发中该方法可能会出乱子,因为在写代码的时候为了让代码更体现语义和层次清晰,难免要通过IDE提供代码缩进显示,这必然会让标签和其他标签换行显示,比如说DW的“套用源格式”命令。所以说这个方法可以供我们了解出现BUG的一种情况,具体解决图片下边空白方案的还得各位见招拆招了。
来源:千锋HTML5