我发现Internet Explorer与表空间相关的一个奇怪问题,无法找到解决它的方法。空表导致使用Internet Explorer的单个像素空白区域(6和7,8尚未测试),而所有其他浏览器忽略空表。这是问题的图片:
alt text http://img30.imageshack.us/img30/295/tablepixelbug.png
以下是重现问题的最低HTML代码(请注意,指定了更多的margin / padding css属性和表属性,而不是真正需要的,我只测试了这是否修复了IE的行为):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<body>
<div style="width: 200px; border: 1px black solid">
<table border="0" cellspacing="0" cellpadding="0"
style="margin: 0pt; padding: 0pt; border-collapse: collapse;">
<tr>
<td style="padding: 0; margin: 0">
</td>
</tr>
</table>
<div style="background: red">
Test
</div>
</div>
</body>
</html>
我没有使用上面示例中指定的空表,但这是显示此行为的最小代码。有关如何修复此问题并使用IE删除空格的任何想法?
答案 0 :(得分:2)
我建议您从表中删除样式并仅将其应用于单元格(甚至不是行)。 table和tr标签上的样式有时会产生副作用。
答案 1 :(得分:1)
如果它是空的,你可以尝试在桌面上显示:none,并在javascript中进行。
答案 2 :(得分:1)
我知道的一篇旧帖子,但在我自己寻找解决方案时偶然发现了它。似乎在IE8中修复了这个问题,但我尝试了我知道的每一个技巧,让它在IE6 / 7中排序,但是找不到合适的方法。最后我选择添加一个margin-top:-1px;使用IE6 / 7目标选择器到红色div(或后面的任何元素)。多么令人沮丧的错误!
阿伦