img 下多余空隙解决方案

在进行页面的 CSS 排版时,遇到 IE6(当然有时 Firefox 下也会偶遇)浏览器中的图片元素 img 下出现多余空隙的问题绝对是常见的。对于该问题的解决方法也是「见机行事」,根据原因的不同要用不同的解决方法,这里把解决 img 下边多余空隙 Bug 的常用方法归纳,供大家参考。

假如 Html 结构如下所示,img 的父级元素为 figure:

1
2
3
<div class="figure">
<img src="..." alt="..."/>
</div>

1、将图片转换为块级对像

即设置 img 的 display 为:block,示例 CSS 代码:

1
.figure img { display: block;}

2、设置图片的垂直对齐方式

即设置图片的 vertical-align 属性为:top、text-top、bottom、text-bottom,示例 CSS 代码:

1
.figure img { vertical-align: top;}

3、设置父级对象的文字大小为 0

即设置 figure 的 font-size 属性为: 0, 可以解决问题,但这也引发了新的问题,在父对像中的文字都无法显示。就算文字部分被子对像括起来,重置子对像文字大小依然可以显示,但在 CSS 效验的时候会提示文字过小的错误。示例 CSS 代码:

1
.figure { font-size: 0;}

4、改变父级对象的属性

如果父级对象的宽、高固定,img 自适应父级对像大小,那么可以设置:
overflow:hidden; 来解决。如本例中可以向#sub中添加以下代码:

1
2
3
4
5
.figure {
width: 100px;
height: 100px;
overflow: hidden;
}

5、设置 img 的浮动属性

给 img 设置 float 属性为:left、right,示例 CSS 代码:

1
img { float: left;}

如果要实现图文混排,这种方法是很好的选择。

6、取消 img 标签和其父级对象的最后一个结束标签之间的空格

这个方法要强调下,在实际开发中该方法可能会出乱子,因为在写代码的时候为了让代码更体现语义和层次清晰,难免要通过 IDE 提供代码缩进显示,这必然 会让标签和其他标签换行显示,比如说 Dreamweaver 的“套用源格式”命令。所以说这个方法可以供我们了解出现 Bug 的一种情况,具体解决方案的还得各位见招拆招了。