今天遇到一个很诡异的问题,记得以前也遇到过,不过上次碰到的时候,回避了一下,那时候太忙了(^ ^!) 问题是在li标签里加img标签的时候,在img下会出现5px的空隙。结构是这样的:
<ul>
<li><img src="ss.gif" width="100" height="40" alt="ss"></li>
<li><img src="ss.gif" width="100" height="40" alt="ss"></li>
<li><img src="ss.gif" width="100" height="40" alt="ss"></li>
</ul>结构很简单,不过问题就出来了,效果看这里
在尝试中发现在img标签里加align="center" 或者 加样式 img {vertical-align: top;} 就可以解决了。暴汗...目前还不知道原因
8.28 update: : 在blueidea上发现一个帖子IE图片下空隙问题解决方法集合,不过还是没人说明产生问题的原因...
可能是因为前面的那个圆点是默认的居中。而插入的内容没有在没有设置时默认为靠底线。所以出现这样的一段缝隙。不但是图片,文字也有这样的情况,只是文字不容易看出来而已。
list-style:none;的话,不存在列表项标记了吧,而且那个5px的空隙是在li内img的下方图片文字等 inline 元素默认是和父级元素的 baseline 对齐的,而 baseline 又和父级底边有一定距离(这个距离和 font-size,font-family 相关,不一定是 5px),所以设置 vertical-align:top/bottom/text-top/text-bottom 都可以避免这种情况出现。
而且不光 li,其他的 block 元素中包含 img 也会有这个现象。
至于这里的 HTML 属性 align="center"(对于图片浏览器会处理成 align="middle"),就相当于 vertical-align:middle; 所以道理也是一样的,只要 vertical-align 不取 baseline,这个空隙就消失了。
多谢old9兄的提醒,看来基础不够扎实啊...
[...] 网站底部有个广告图片区域,用的是li排列,里面插入的img标签,CSS里设置了ul,li,img的高度都统一,在firefox里很完美,图片紧贴着外边框。但是在IE里图片的下边很明显可以看到几px的空隙,造成了高度增加,这样左右底部就不对齐了,影响美观。搜索了一下,发现了在li标签里加img的问题,进而找到蓝色理想的一篇帖子:IE图片下空隙问题解决方法集合,知道了几种解决方法.1.设置img的display为block 2.设置img的vertical-align为top 3.设置img父容器的font-size为0 4.设置img 的margin-bottom为负值,同时针对FF设置margin-bottom为0 [...]