IE8 и режим причуд - PullRequest
       50

IE8 и режим причуд

5 голосов
/ 07 августа 2009

IE8 работает в режиме причуд, как IE6 / 7?

У меня есть веб-страница с действительно странным кодом. Содержание сосредоточено с отступами и отрицательными полями.

Он работает правильно в IE6 / 7 и других браузерах, но в IE8 область содержимого в два раза шире и не центрирована (флаг для режима причуд).

Исходный код имеет три пустых строки перед DOCTYPE. Я знаю, что бросит IE6 в режиме причуд. Это также повлияет на IE8?

У меня нет доступа к источнику, поэтому я не могу удалить эти строки, чтобы проверить его.

Ответы [ 6 ]

6 голосов
/ 30 ноября 2009

Изменение типа документа на HTML 5 должно исправить некоторые проблемы. У меня была проблема с минимальной шириной в IE8 при использовании строгого типа документа.

Так изменилось это:

<! DOCTYPE html PUBLIC "- // W3C // DTD XHTML 1.0 Strict // EN" «<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" rel="noreferrer">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

К этому: <! DOCTYPE html>

Смотрите здесь: http://davidnaylor.org/blog/2008/09/ie8-and-max-width.html

5 голосов
/ 07 августа 2009

Выполнение нескольких быстрых тестов, которые можно найти здесь , похоже, указывает на то, что пустые строки не должны переводить IE8 в режим Quirks (который отличается от режима совместимости, с которым, похоже, все его путают).

Я написал разбивку о том, как невероятно запутаны различные режимы IE8 / 7 здесь , и я даже не включил режим Quirks в разбивку. Подробное описание режима Quirks можно найти здесь (не для оригинального вопроса, но другие могут найти его интересным.)

3 голосов
/ 15 января 2010

Сегодня я изменил наш DOCTYPE с XHTML v1.0 (строго) на HTML5. Я где-то читал, что, хотя IE еще не распознают DOCTYPE, они будут отображать страницу в режиме, соответствующем стандартам.

Когда я зарегистрировался в IE8, вся страница выглядела странно (у нас есть немного CSS и другие стили). Прошло некоторое время, прежде чем я понял, что в CSS нет ничего «плохого» или даже в IE8. Тем не менее, это был рендеринг в режиме причуд.

Случайно, я нашел ответ в вопросе, размещенном здесь, в частности, этот комментарий: «Исходный код имеет три пустых строки перед DOCTYPE. Я знаю, что IE6 перейдет в режим причуд. Это также повлияет на IE8?»

Я не знаю о пустых строках, но когда я внес изменение, я использовал комментарий javascript, чтобы "держаться" за мой старый оператор DOCTYPE (который был выше нового HTML5 DOCTYPE). После того, как я удалил эти строки (которые могли содержать пустую строку или две), моя потливость прекратилась, и IE8 отрисовался в режиме, соответствующем стандартам.

0 голосов
/ 07 августа 2009

Можете ли вы опубликовать ссылку на страницу или часть самого HTML? Вы можете попробовать добавить метатег в режим принудительной совместимости?

http://www.ditii.com/2008/08/28/ie8-standards-mode-and-ie7-compatibility-mode/

или для получения дополнительной информации:

http://blogs.msdn.com/ie/archive/2008/08/27/introducing-compatibility-view.aspx

0 голосов
/ 07 августа 2009

IE8 имеет режим совместимости, который должен обрабатывать страницу так же, как IE7. Вы пробовали просматривать страницу в режиме совместимости?

0 голосов
/ 07 августа 2009

Да, это так. Режим причуд Internet Explorer - это IE5.5. IE6 / 7/8 переключаются обратно на 5,5, когда присутствует режим причуд. Так как в IE6 / 7 все работало нормально, это не режим причуд. В IE8 есть кнопка «Просмотр совместимости» для решения этой проблемы. Это не хорошее решение для меня, хотя. Вам придется проверить свой код CSS.

...