Internet Explorer表1像素间距问题

时间:2009-07-21 12:10:52

标签: html internet-explorer

我发现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删除空格的任何想法?

3 个答案:

答案 0 :(得分:2)

我建议您从表中删除样式并仅将其应用于单元格(甚至不是行)。 table和tr标签上的样式有时会产生副作用。

答案 1 :(得分:1)

如果它是空的,你可以尝试在桌面上显示:none,并在javascript中进行。

答案 2 :(得分:1)

我知道的一篇旧帖子,但在我自己寻找解决方案时偶然发现了它。似乎在IE8中修复了这个问题,但我尝试了我知道的每一个技巧,让它在IE6 / 7中排序,但是找不到合适的方法。最后我选择添加一个margin-top:-1px;使用IE6 / 7目标选择器到红色div(或后面的任何元素)。多么令人沮丧的错误!

阿伦