Принудительный переход IE7 в стандартный режим рендеринга (не причуды)

У меня проблемы с отображением в IE7 из-за рендеринга в режиме причуд. Я подтвердил это, отобразив «document.compatMode» и вернув «BackCompat» вместо «CSS1Compat». Использование IE8 и возврат к IE7 работают, потому что это избавляет его от причуд. В простом IE8 я исправил это, установив режим рендеринга с заголовком X-UA-Compatible, но это не работает для IE7. В других браузерах также отображаются причуды, но, в отличие от IE, это не переводит их в режим псевдо-IE5.5, поэтому они по-прежнему отображаются нормально.

Как заставить IE7 выполнять рендеринг в стандартном режиме рендеринга, а не с причудами? Я пробовал установить для DOCTYPE несколько различных параметров, и я не добавляю пролог xml. Заранее благодарим за любые ответы.


person Matthew Farver    schedule 09.02.2011    source источник
comment
Можете ли вы пропустить первые несколько строк своей страницы или предоставить ссылку.   -  person leebriggs    schedule 09.02.2011
comment
Это довольно старый вопрос, поэтому я сомневаюсь, что он куда-то денется. Но меня также интересует ответ на этот вопрос. По разным причинам я не могу изменить DOCTYPE на рассматриваемой странице, и есть много недопустимого HTML, который нельзя легко изменить. Мне интересно, есть ли у IE7 что-то похожее на X-UA-Compatible IE8. Пока не похоже.   -  person Mitch Lindgren    schedule 30.03.2011


Ответы (2)


Вы пробовали строго соблюдать DTD XHTML 4?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml/DTD/xhtml1-strict.dtd">

Также будьте осторожны, если до этого объявления DTD есть что-нибудь, IE7 все равно останется в режиме причуды.

Другими словами:

IE7: строгий

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

or

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

IE7: причуда

<?xml version="1.0" encoding="UTF-8"?>
<!-- stuff -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Что неприятно, так это то, что IE6 принимает следующее в качестве режима Quirk.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
person Alain Pannetier    schedule 09.02.2011

Вы запускали свой код через валидатор W3C?

Если у вас недопустимый HTML, IE может вернуться в режим совместимости независимо от типа документа.

person Spudley    schedule 09.02.2011