当li的子元素中有浮动(float)时,IE6/IE7中<li>元素的下面会产生4px空隙的bug。
代码以下:
<ul class="list">
<li><div>vapour</div></li>
<li><div>百度</div></li>
<li><div>淘宝</div></li>
<li><div>迅雷</div></li>
</ul>
通过测试发现:li的子元素浮动是这个bug产生的必要条件,这个bug产生的充要条件是li的子元素浮动而且li设置了如下CSS属性之一:width、height、zoom、padding-top、padding-bottom、margin-top、margin-bottom。
知道了这个bug的产生条件,因此解决方法也就有了:
方法1
#list div设置clear:left|both,这时#list li不能设置width、height、zoom。
方法2
#list li设置float:left,这时#list li能够设置width、height、zoom。
#list li设置clear:left|both,这时#list li不能设置width、height、zoom。
方法3
IE6/IE7的这个Bug能够经过给li中的div设置vertical-align:top|middle|bottom解决。太怪异了,只要加上vertical-align的值是三者之一便可。 测试