2009-07-27 162 views
0

我有一个相当复杂的页面,其中包含一个绝对定位的表(作为正文中的最后一个元素)。该表是使用jQuery动态创建的。无论我如何指定cellspadding属性,IE8在兼容模式下都会忽略它。有几种迹象表明它为什么会被忽略:兼容性模式下的Internet Explorer 8忽略cellpadding

  • 布局关闭了默认的填充(2px)。

  • 在IE Developer Tools底座中,属性显示为“cellpadding”(全部小写),而cellspacing属性显示为“cellSpacing”,并且如果将属性选项卡下的值更改为0,固定并且名称更改为“cellPadding”。

正如我所说,这是一个相当复杂的页面(读“混乱”)全从多个来源粘贴广告和内容。我打算做更多的调查,但我想知道是否有人遇到过同样的问题。它必定是一些边缘情况可能导致无效标记导致这种误解。

回答

0

原来,这个问题是由jQuery中的错误引起的(或至少它看起来像一个bug,除非有其他原因,我没有看到)。我将它提交给jQuery bug跟踪器:#4978。为了长话短说,jQuery以特殊方式处理cellspacing,并在设置其值之前将其转换为cellSpacing。它不是cellpadding同样的事情。这会导致IE7出现问题,因为setAtribute()函数默认情况下是区分大小写的(在IE7中)。

1

首先,也许你应该检查IE7.0上的相同页面,以确定“错误”是由于IE7.0如何处理它,或者如果它是IE8.0兼容模式下的错误。

根据结果,你可以做到以下几点:

  1. 同样的错误在IE 7.0:找到一个方法来处理它。

  2. 错误只在IE 8.0兼容模式:报告错误/找到一个方法来处理它没有让修复影响IE 7.0用户。

  3. 仅在IE 8.0兼容模式下出错:什么也不做,没有人在兼容模式下使用IE 8.0。

+0

感谢您的反馈。它在我的TODO清单上。唯一的问题是,我刚刚意识到,我没有一台真正的IE7的机器。 – 2009-07-27 14:44:17

相关问题