2009-07-27 2 views
0

У меня довольно сложная страница, содержащая абсолютно позиционированную таблицу (в качестве последнего элемента в теле). Таблица создается динамически с помощью jQuery. Независимо от того, как я указываю атрибут cellpadding, IE8 в режиме совместимости игнорирует его. Есть несколько указаний относительно того, почему она игнорируется:Internet Explorer 8 в режиме совместимости игнорирует cellpadding

  • Компоновка выключен ровно заполнения по умолчанию (2px).

  • В док-станции IE Developer Tools свойство представлено как «cellpadding» (все строчные буквы), тогда как атрибут cellpacing представлен как «cellSpacing», и если я изменю его значение на вкладке «Атрибуты» на 0, макет получит исправлено, а имя изменено на «cellPadding».

Как я уже сказал, это довольно сложная страница (читается «messy»), полная рекламы и контента, приклеенных из нескольких источников. Я планирую провести еще несколько исследований, но мне было интересно, сталкивался ли кто-то с той же проблемой раньше. Это должно быть какое-то краевое дело, возможно, вызвало недопустимую разметку, приводящую к этой неверной интерпретации.

ответ

0

Оказалось, что проблема была вызвана ошибкой в ​​JQuery (или, по крайней мере, это выглядит как ошибка, если не будут какие-то другие причины я не вижу). Я подал его в jQuery-трекер ошибок: #4978. Чтобы сделать длинный рассказ коротким, jQuery обрабатывает cellspacing особым образом и преобразует его в cellSpacing, прежде чем устанавливать его значение. Это нет сделаю то же самое для cellpadding. Это вызывает проблему для IE7, потому что функция setAtribute() по умолчанию чувствительна к регистру (в IE7).

1

Для начала, возможно, вам следует проверить ту же страницу на IE 7.0, чтобы узнать, является ли «ошибка» из-за того, как IE 7.0 справляется с ней, или если это ошибка в режиме совместимости IE 8.0.

В зависимости от результата вы можете сделать следующее:

  1. та же ошибка в IE 7.0: Найдите способ справиться с этим.

  2. Ошибка только в режиме совместимости с IE 8.0: Сообщить об ошибке/найти способ ее обработки без, позволяющий исправить ошибки пользователей IE 7.0.

  3. Ошибка только в режиме совместимости с IE 8.0: ничего не делать, никто не использует IE 8.0 в режиме совместимости.

+0

Благодарим вас за отзыв. Это в моем списке TODO. Единственная проблема в том, что я только что понял, что у меня нет машины с подлинным IE7. –

Смежные вопросы